Files
docker-release/docker-compose.yml
2026-09-06 09:40:35 +12:00

63 lines
2.3 KiB
YAML

# Deployment compose file — pulls the images published by build-and-push.sh
# from Docker Hub instead of building from source.
#
# Nothing here needs the source tree, so this file (plus a .env) can be copied
# to a server on its own:
#
# docker compose pull && docker compose up -d
#
# Values come from the .env sitting next to this file, which compose loads
# automatically — the same .env build-and-push.sh uses. Copy .env.example to
# .env and fill it in. Secrets are deliberately not hard-coded here.
services:
backend:
image: ${DOCKERHUB_NAMESPACE:-fennecsm}/fennec-hub-backend:${TAG:-latest}
container_name: fennec-backend
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE:-custom}
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL:-jdbc:mysql://host.docker.internal:3306/fennecpro?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME:-root}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD:?set SPRING_DATASOURCE_PASSWORD in .env}
# Honor X-Forwarded-* from nginx so Spring reconstructs the original URL
# (http://localhost) instead of seeing http://backend:8080.
SERVER_FORWARD_HEADERS_STRATEGY: framework
# CORS allow-list — frontend served via nginx on http://localhost (port 80).
# Keep :4200 so the non-dockerized Angular dev server still works.
FENNEC_HUB_SECURITY_CORS_ALLOWED_ORIGINS: ${FENNEC_HUB_SECURITY_CORS_ALLOWED_ORIGINS:-http://localhost,http://localhost:4200,https://hub.fennecsm.com,https://ecom.fennecsm.com}
ports:
- "9999:8080"
volumes:
- /home/fennec/hub:/home/fennec/hub
networks:
- fennec
frontend:
image: ${DOCKERHUB_NAMESPACE:-fennecsm}/fennec-hub-admin-ui:${TAG:-latest}
container_name: fennec-frontend
restart: unless-stopped
ports:
- "8888:80"
depends_on:
- backend
networks:
- fennec
frontendcomm:
image: ${DOCKERHUB_NAMESPACE:-fennecsm}/fennec-hub-commerce:${TAG:-latest}
container_name: fennec-frontendcomm
restart: unless-stopped
ports:
- "8889:80"
depends_on:
- backend
networks:
- fennec
networks:
fennec:
driver: bridge