diff --git a/docker-compose.yml b/docker-compose.yml index e2f6c905..7c2b3207 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,19 @@ services: + # Init service: ensure config.db file exists before backend starts + config-init: + image: busybox:1.36 + command: + - sh + - -c + - > + touch /mnt/config.db && + if [ ! -f /mnt/config.json ] && [ -f /mnt/config.json.example ]; then + cp /mnt/config.json.example /mnt/config.json; + fi + volumes: + - ./:/mnt + restart: "no" + # Backend service (API and core logic) nofx: build: @@ -18,6 +33,9 @@ services: - TZ=${NOFX_TIMEZONE:-Asia/Shanghai} # Set timezone networks: - nofx-network + depends_on: + config-init: + condition: service_completed_successfully healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"] interval: 30s @@ -47,4 +65,4 @@ services: networks: nofx-network: - driver: bridge \ No newline at end of file + driver: bridge