This setup provides a Windows-based Docker development environment using Docker Compose. It includes:
- Java 17 (Adoptium)
- Python 3.12
- Git
- Salesforce Data Loader v64.0.2
- Cloned project repositories into
C:\repoinside the container
Use this container to run batch scripts, work across multiple Salesforce-related repositories, and develop in a consistent Windows environment.
- Windows 10 or 11 (Pro, Enterprise, or Education)
- Docker Desktop for Windows
- Docker must be running in Windows Containers mode
Update or create:
C:\ProgramData\Docker\config\daemon.json
{
"dns": ["8.8.8.8", "1.1.1.1"]
}Restart Docker Desktop after saving.
Verify with:
docker run --rm mcr.microsoft.com/windows/servercore:20H2 powershell -Command "Resolve-DnsName github.com"- Right-click Docker whale icon → Switch to Windows containers…
If missing, do:
Enable-WindowsOptionalFeature -Online -FeatureName containers -All
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -AllReboot if prompted. Then:
& "$Env:ProgramFiles\Docker\Docker\DockerCli.exe" -SwitchDaemonVerify:
docker infoShould show OSType: windows.
git clone https://github.com/daveb-arc/seaware-sync.git
cd C:\repoEnsure this layout:
C:\repo\
├── seaware-sync\
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── dependencies\
│ │ └── dataloader_v64.0.2\ ← Already extracted
├── Salesforce-Importer\
├── Salesforce-Exporter\
├── Salesforce-Importer-Private\
├── Salesforce-Exporter-Private\
$Env:DOCKER_BUILDKIT = 1
docker build --network="Default Switch" --no-cache -t uncruise-dev-win -f seaware-sync\Dockerfile seaware-syncdocker-compose -f seaware-sync\docker-compose.yml upThis uses the versioned Compose file inside
seaware-sync, but can be launched fromC:\repo.
If you're at this prompt:
PS C:\repo\seaware-sync>
You're inside the container.
To confirm:
$env:COMPUTERNAMEOr:
C:\Windows\System32\hostname.exeTo interact via terminal (recommended):
docker-compose -f seaware-sync\docker-compose.yml run uncruise-devC:\repo\
├── seaware-sync\
│ ├── docker-compose.yml
│ ├── Dockerfile
│ ├── dependencies\
│ │ └── dataloader_v64.0.2\
│ └── README.md
├── Salesforce-Importer\
├── Salesforce-Exporter\
├── Salesforce-Importer-Private\
├── Salesforce-Exporter-Private\
Stop and remove the container:
docker-compose -f seaware-sync\docker-compose.yml downRemove all containers/images:
docker system prune -a- This setup is for Windows containers (not Linux containers).
docker-compose.ymlstays versioned underseaware-sync.- All build/run commands should be run from
C:\repo.
Sure! Here's the "Run Sync Process" section in Markdown format, ready for you to copy and paste into your GitHub README:
cd C:\repo
git -C Salesforce-Importer pull
git -C Salesforce-Exporter pull
git -C Salesforce-Importer-Private pull
git -C Salesforce-Exporter-Private pull
git -C seaware-sync pullAttach to the dev container following the instructions in this README.
In VS Code’s integrated PowerShell terminal:
& "C:\repo\Salesforce-Importer-Private\Clients\SEAWARE-BOOKINGS\importer-docker.bat" Bookings Prod -interactivemodeFrom the docker folder:
& "C:\repo\Salesforce-Importer-Private\Execute\SEAWARE\docker\salesforce-import-bookings.bat"This ensures the production sync logic is preserved and not altered.
- Exports from Salesforce →
C:\repo\Salesforce-Exporter-Private\Clients\SEAWARE-BOOKINGS\…\Export - Exports from Seaware →
C:\repo\seaware-sync\output_csv
-
Find the running container name:
docker ps
-
Copy files to Windows host:
$cid = "seaware-sync-uncruise-dev-1" docker cp "$cid:`"C:\repo\Salesforce-Exporter-Private\Clients\SEAWARE-BOOKINGS\Salesforce-Exporter\Clients\SEAWARE-BOOKINGS\Export`" \ "C:\repo\Salesforce-Exporter-Private\Clients\SEAWARE-BOOKINGS\Salesforce-Exporter\Clients\SEAWARE-BOOKINGS\Export" docker cp "$cid:`"C:\repo\seaware-sync\output_csv`" \ "C:\repo\seaware-sync\output_csv"
These commands overwrite any existing files on the host with the latest exports from the container.
Updated: July 12, 2025