A minimal Docker Compose service that exposes Windows deployment files over a read-only SMB share to campus-network WinPE clients.
The project directory must contain a symbolic link named disks.
Example:
sudo mkdir -p /mnt/deploy-disk/wim-deployment/{images,scripts,drivers}
ln -s /mnt/deploy-disk/wim-deployment disksExpected layout:
disks -> /mnt/deploy-disk/wim-deployment
├── images/
│ └── lab.wim
├── scripts/
│ └── restore_network.cmd
└── drivers/
manage.sh resolves the symbolic link with readlink -f, validates the target,
and exports the real host path to Docker Compose. The container receives it at
/srv/deployment as a read-only bind mount.
cp .env.example .env
nano .env
mkdir -p secrets
openssl rand -base64 24 > secrets/samba_password.txt
chmod 600 secrets/samba_password.txt
chmod +x manage.sh samba/entrypoint.sh
./manage.sh config
./manage.sh upBefore starting, edit samba/smb.conf and narrow hosts allow to the actual
laboratory/campus subnet.
./manage.sh testwpeinit
net use Z: \\SERVER_IP\deployment /user:deploy *
dir Z:\images
dism /Get-WimInfo /WimFile:Z:\images\lab.wimUse * to request the password interactively during the first test.
./manage.sh up
./manage.sh logs
./manage.sh ps
./manage.sh restart
./manage.sh downCopy to a temporary filename first, then rename it so clients never see a partially uploaded WIM:
sudo cp new-image.wim disks/images/new-image.wim.uploading
sudo mv disks/images/new-image.wim.uploading disks/images/new-image.wim
sha256sum disks/images/new-image.wim | sudo tee disks/images/new-image.wim.sha256