64 lines
1.7 KiB
YAML
64 lines
1.7 KiB
YAML
version: "2.4"
|
|
services:
|
|
db_recipes:
|
|
restart: always
|
|
image: postgres:15-alpine
|
|
volumes:
|
|
- ${POSTGRES_DATA_DIR:-./postgresql}:/var/lib/postgresql/data
|
|
env_file:
|
|
- ./.env
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "psql -U $$POSTGRES_USER -d $$POSTGRES_DB --list || exit 1"]
|
|
interval: 4s
|
|
timeout: 1s
|
|
retries: 12
|
|
networks:
|
|
tandoor:
|
|
ipv6_address: ${IPV6_PREFIX:?NO_IPV6_PREFIX}::2
|
|
web_recipes:
|
|
image: vabene1111/recipes
|
|
restart: always
|
|
env_file:
|
|
- ./.env
|
|
volumes:
|
|
- staticfiles:/opt/recipes/staticfiles
|
|
# Do not make this a bind mount, see https://docs.tandoor.dev/install/docker/#volumes-vs-bind-mounts
|
|
- nginx_config:/opt/recipes/nginx/conf.d
|
|
- ${MEDIA_FILES_DIR:-./mediafiles}:/opt/recipes/mediafiles
|
|
depends_on:
|
|
db_recipes:
|
|
condition: service_healthy
|
|
networks:
|
|
tandoor:
|
|
ipv6_address: ${IPV6_PREFIX:?NO_IPV6_PREFIX}::3
|
|
|
|
nginx_recipes:
|
|
image: nginx:mainline-alpine
|
|
restart: always
|
|
ports:
|
|
- 80:80
|
|
env_file:
|
|
- ./.env
|
|
depends_on:
|
|
- web_recipes
|
|
volumes:
|
|
# Do not make this a bind mount, see https://docs.tandoor.dev/install/docker/#volumes-vs-bind-mounts
|
|
- nginx_config:/etc/nginx/conf.d:ro
|
|
- staticfiles:/static:ro
|
|
- ${MEDIA_FILES_DIR:-./mediafiles}:/media:ro
|
|
networks:
|
|
tandoor:
|
|
ipv6_address: ${IPV6_PREFIX:?NO_IPV6_PREFIX}::4
|
|
volumes:
|
|
nginx_config:
|
|
staticfiles:
|
|
|
|
networks:
|
|
tandoor:
|
|
enable_ipv6: true
|
|
name: ${NETWORK_NAME:-tandoor}
|
|
driver: bridge
|
|
ipam:
|
|
driver: default
|
|
config:
|
|
- subnet: ${IPV6_PREFIX:?NO_IPV6_PREFIX}::/${IPV6_PREFIX_LENGTH:?NO_IPV6_PREFIX_LENGTH} |