chore(compose): refactor django environment next to its manifest

This commit is contained in:
jon r 2025-02-21 12:37:54 +01:00
parent a19e0ac98c
commit ddfa7fc64e
2 changed files with 55 additions and 53 deletions

View File

@ -4,39 +4,6 @@ networks:
external: true external: true
x-django: &django x-django: &django
environment:
- DEBUG
- DEFAULT_FROM_EMAIL
- DJANGO_SETTINGS_MODULE
- DJANGO_SECRET_KEY
- EXTERNAL_REQUESTS_VERIFY_SSL
- 'FORCE_HTTPS_URLS=${FORCE_HTTPS_URLS:-False}'
- FUNKWHALE_PROTOCOL
- 'FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}'
- DATABASE_URL
- CACHE_URL
- EMAIL_CONFIG
- TYPESENSE_API_KEY
- 'STATIC_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/static/'
- 'MEDIA_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/media/'
- STATIC_ROOT
- MEDIA_ROOT
- FUNKWHALE_SPA_HTML_ROOT
- LDAP_ENABLED
- BROWSABLE_API_ENABLED
- 'MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}'
- C_FORCE_ROOT
- PYTHONDONTWRITEBYTECODE
- PYTHONTRACEMALLOC
dns: 172.17.0.1 dns: 172.17.0.1
dns_search: funkwhale.test dns_search: funkwhale.test
@ -46,14 +13,17 @@ services:
context: ./front context: ./front
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
ports: ports:
- '${VUE_PORT:-8080}:${VUE_PORT:-8080}' - "${VUE_PORT:-8080}:${VUE_PORT:-8080}"
environment: environment:
- HOST
- VUE_PORT - VUE_PORT
volumes: volumes:
- './front:/app' - "./front:/app"
- '/app/node_modules' - "/app/node_modules"
- "./po:/po"
networks: networks:
- internal - internal
command: "yarn dev --host"
api: api:
extends: extends:
@ -72,8 +42,8 @@ services:
file: ./compose/app.nginx.yml file: ./compose/app.nginx.yml
service: nginx service: nginx
environment: environment:
- 'MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}' - "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}"
- 'FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}' - "FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}"
- FUNKWHALE_PROTOCOL - FUNKWHALE_PROTOCOL
@ -86,34 +56,34 @@ services:
- NGINX_MAX_BODY_SIZE - NGINX_MAX_BODY_SIZE
- STATIC_ROOT - STATIC_ROOT
- 'MEDIA_ROOT=${MEDIA_ROOT:-/data/media}' - "MEDIA_ROOT=${MEDIA_ROOT:-/data/media}"
networks: networks:
- web - web
- internal - internal
labels: labels:
- 'traefik.enable=true' - "traefik.enable=true"
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)' - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)"
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web' - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web"
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)' - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)"
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs' - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs"
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true' - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true"
- 'traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}' - "traefik.http.routers.test-funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}"
postgres: postgres:
image: 'postgres:${POSTGRES_VERSION:-15}-alpine' image: "postgres:${POSTGRES_VERSION:-15}-alpine"
environment: environment:
- POSTGRES_HOST_AUTH_METHOD - POSTGRES_HOST_AUTH_METHOD
command: postgres ${POSTGRES_ARGS:-} command: postgres ${POSTGRES_ARGS:-}
volumes: volumes:
- './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data' - "./.state/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data"
networks: networks:
- internal - internal
healthcheck: healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres'] test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 5 retries: 5
@ -121,11 +91,11 @@ services:
redis: redis:
image: redis:7-alpine image: redis:7-alpine
volumes: volumes:
- './.state/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data' - "./.state/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data"
networks: networks:
- internal - internal
healthcheck: healthcheck:
test: ['CMD', 'redis-cli', 'ping'] test: ["CMD", "redis-cli", "ping"]
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 3 retries: 3

View File

@ -1,5 +1,7 @@
x-django: &django x-django: &django
image: funkwhale-api image: funkwhale-api
networks:
- internal
volumes: volumes:
- ../api:/app - ../api:/app
- ../.env:/app/.env - ../.env:/app/.env
@ -13,8 +15,38 @@ x-django: &django
condition: service_healthy condition: service_healthy
redis: redis:
condition: service_healthy condition: service_healthy
networks: environment:
- internal - DEBUG
- DEFAULT_FROM_EMAIL
- DJANGO_SETTINGS_MODULE
- DJANGO_SECRET_KEY
- EXTERNAL_REQUESTS_VERIFY_SSL
- "FORCE_HTTPS_URLS=${FORCE_HTTPS_URLS:-False}"
- FUNKWHALE_PROTOCOL
- "FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}"
- DATABASE_URL
- CACHE_URL
- EMAIL_CONFIG
- TYPESENSE_API_KEY
- "STATIC_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/static/"
- "MEDIA_URL=${FUNKWHALE_PROTOCOL}://${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}/media/"
- STATIC_ROOT
- MEDIA_ROOT
- FUNKWHALE_SPA_HTML_ROOT
- LDAP_ENABLED
- BROWSABLE_API_ENABLED
- "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}"
- C_FORCE_ROOT
- PYTHONDONTWRITEBYTECODE
- PYTHONTRACEMALLOC
services: services:
api: api: