chore: split compose into separate files

- Split compose.yml into two files: compose.yml for running and compose.prepare.yml for golden image preparation
- Rename env vars STORAGE->STORAGE_DIR and ISO->ISO_FILE to avoid conflicts with internal script variables
- Remove unused VERSION env var (hardcoded in scripts)
- Update README with new command syntax
This commit is contained in:
synacktra.work@gmail.com 2025-11-15 17:08:02 +05:30
parent f80bb8202c
commit e241426eea
4 changed files with 25 additions and 19 deletions

View File

@ -41,6 +41,5 @@ EXPOSE 3389 8006
ENV RAM_SIZE="4G"
ENV CPU_CORES="2"
ENV DISK_SIZE="30G"
ENV VERSION="win11e"
ENTRYPOINT ["/usr/bin/tini", "-s", "/run/entry.sh"]

19
compose.prepare.yml Normal file
View File

@ -0,0 +1,19 @@
services:
prepare-windows:
image: windows-local:latest
container_name: prepare-windows
environment:
ISO_FILE: "${ISO_FILE:?Error: required env var not set}"
STORAGE_DIR: "${STORAGE_DIR:?Error: required env var not set}"
devices:
- /dev/kvm
cap_add:
- NET_ADMIN
ports:
- 8006:8006
- 3389:3389/tcp
- 3389:3389/udp
stop_grace_period: 2m
volumes:
- ${ISO_FILE}:/custom.iso
- ${STORAGE_DIR}:/storage

View File

@ -3,8 +3,7 @@ services:
image: windows-local:latest
container_name: windows
environment:
VERSION: "win11e"
STORAGE: "${STORAGE:?Error: required env var not set}"
STORAGE_DIR: "${STORAGE_DIR:?Error: required env var not set}"
devices:
- /dev/kvm
cap_add:
@ -15,15 +14,4 @@ services:
- 3389:3389/udp
stop_grace_period: 2m
volumes:
- ${STORAGE}:/storage
prepare-golden-image:
extends:
service: windows
profiles:
- prepare-golden-image
environment:
ISO: "${ISO:?Error: required env var not set}"
volumes:
- ${ISO}:/custom.iso
- ${STORAGE}:/storage
- ${STORAGE_DIR}:/storage

View File

@ -16,13 +16,13 @@ Local Windows inside a Docker container.
To prepare a golden image from a custom ISO:
```bash
STORAGE=/path/to/storage ISO=/path/to/custom.iso \
docker compose --profile prepare-golden-image up
STORAGE_DIR=/path/to/storage ISO_FILE=/path/to/custom.iso \
docker compose -f compose.prepare.yml up
```
Start the container:
Start the container (using the golden image):
```bash
STORAGE=/path/to/storage docker compose up
STORAGE_DIR=/path/to/storage docker compose up
```
### Via Docker CLI: