chore(compose): split into distinct manifests per environment and module
This commit is contained in:
		
							parent
							
								
									f17527d239
								
							
						
					
					
						commit
						c289e75dfa
					
				|  | @ -0,0 +1,8 @@ | ||||||
|  | include: | ||||||
|  |   - path: docker/app.default.yml | ||||||
|  |     env_file: | ||||||
|  |       - .env.default | ||||||
|  |   - path: docker/env.local.yml | ||||||
|  |     env_file: | ||||||
|  |       - .env.local | ||||||
|  |       - .env.default | ||||||
|  | @ -0,0 +1,7 @@ | ||||||
|  | name: funkwhale-services | ||||||
|  | include: | ||||||
|  |   - path: docker/net.dnsmasq.yml | ||||||
|  |   - path: docker/net.traefik.yml | ||||||
|  |   # uncomment on Linux hosts with empty docker0 bridges, which else are DOWN | ||||||
|  |   # - path: docker/net.helpers.resolved.yml | ||||||
|  |   - path: docker/net.verify.yml | ||||||
|  | @ -1,43 +0,0 @@ | ||||||
| networks: |  | ||||||
|   internal: |  | ||||||
|   federation: |  | ||||||
|     external: true |  | ||||||
| 
 |  | ||||||
| x-django: &django |  | ||||||
| 
 |  | ||||||
| services: |  | ||||||
|   front: |  | ||||||
|     ports: |  | ||||||
|       - "${VUE_PORT:-8080}" |  | ||||||
| 
 |  | ||||||
|   api: |  | ||||||
|     env_file: |  | ||||||
|       - .env.single-node |  | ||||||
|       - .env.dev |  | ||||||
|       - .env |  | ||||||
|     environment: |  | ||||||
|       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME:-localhost}" |  | ||||||
|       - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL:-http}" |  | ||||||
|       - "FUNKWHALE_PORT=${FUNKWHALE_PORT:-8000}" |  | ||||||
|       - "DATABASE_URL=postgresql://postgres@postgres/postgres" |  | ||||||
|       - "CACHE_URL=redis://redis:6379/0" |  | ||||||
|       - "STATIC_ROOT=/staticfiles" |  | ||||||
|     extra_hosts: [] |  | ||||||
| 
 |  | ||||||
|   celeryworker: |  | ||||||
|     env_file: |  | ||||||
|       - .env.single-node |  | ||||||
|       - .env.dev |  | ||||||
|       - .env |  | ||||||
|     environment: |  | ||||||
|       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME:-localhost}" |  | ||||||
|       - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL:-http}" |  | ||||||
|       - "FUNKWHALE_PORT=${FUNKWHALE_PORT:-8000}" |  | ||||||
|       - "DATABASE_URL=postgresql://postgres@postgres/postgres" |  | ||||||
|       - "CACHE_URL=redis://redis:6379/0" |  | ||||||
|     extra_hosts: [] |  | ||||||
| 
 |  | ||||||
|   nginx: |  | ||||||
|     ports: |  | ||||||
|       - "${NGINX_PORTS_MAPPING:-8000:80}" |  | ||||||
|     labels: {} |  | ||||||
							
								
								
									
										138
									
								
								compose.yml
								
								
								
								
							
							
						
						
									
										138
									
								
								compose.yml
								
								
								
								
							|  | @ -1,134 +1,8 @@ | ||||||
| networks: | include: | ||||||
|   internal: |   - path: docker/app.default.yml | ||||||
|   federation: |  | ||||||
|     external: true |  | ||||||
| 
 |  | ||||||
| x-django: &django |  | ||||||
|     env_file: |     env_file: | ||||||
|     - .env.dev |       - .env.default | ||||||
|     - .env |   - path: docker/env.federation.yml | ||||||
|   build: |  | ||||||
|     context: ./api |  | ||||||
|     dockerfile: Dockerfile |  | ||||||
|     args: |  | ||||||
|       install_dev_deps: 1 |  | ||||||
|   image: funkwhale-api |  | ||||||
|   volumes: |  | ||||||
|     - ./api:/app |  | ||||||
|     - "${MUSIC_DIRECTORY_SERVE_PATH-./data/music}:/music:ro" |  | ||||||
|     - "./data/plugins:/srv/funkwhale/plugins" |  | ||||||
|     - "./data/staticfiles:/staticfiles" |  | ||||||
|     - "./data/media:/data/media" |  | ||||||
|   environment: |  | ||||||
|     - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME:-localhost}" |  | ||||||
|     - "FUNKWHALE_HOSTNAME_SUFFIX=funkwhale.test" |  | ||||||
|     - "FUNKWHALE_HOSTNAME_PREFIX=${COMPOSE_PROJECT_NAME}" |  | ||||||
|     - "FUNKWHALE_PROTOCOL=${FUNKWHALE_PROTOCOL:-http}" |  | ||||||
|     - "DATABASE_URL=postgresql://postgres@postgres/postgres" |  | ||||||
|     - "CACHE_URL=redis://redis:6379/0" |  | ||||||
|     - "STATIC_ROOT=/staticfiles" |  | ||||||
|   depends_on: |  | ||||||
|     - postgres |  | ||||||
|     - redis |  | ||||||
|   networks: |  | ||||||
|     - internal |  | ||||||
|   extra_hosts: |  | ||||||
|     - "node1.funkwhale.test:host-gateway" |  | ||||||
|     - "node2.funkwhale.test:host-gateway" |  | ||||||
|     - "node3.funkwhale.test:host-gateway" |  | ||||||
| 
 |  | ||||||
| services: |  | ||||||
|   front: |  | ||||||
|     build: |  | ||||||
|       context: front |  | ||||||
|       dockerfile: Dockerfile.dev |  | ||||||
|     env_file: |     env_file: | ||||||
|       - .env.dev |       - .env.federation | ||||||
|       - .env |       - .env.default | ||||||
|     environment: |  | ||||||
|       - "HOST=0.0.0.0" |  | ||||||
|       - "VUE_PORT=${VUE_PORT:-8080}" |  | ||||||
|     volumes: |  | ||||||
|       - "./front:/app" |  | ||||||
|       - "/app/node_modules" |  | ||||||
|       - "./po:/po" |  | ||||||
|     networks: |  | ||||||
|       - internal |  | ||||||
|     command: "yarn dev --host" |  | ||||||
| 
 |  | ||||||
|   postgres: |  | ||||||
|     healthcheck: |  | ||||||
|       test: ["CMD-SHELL", "pg_isready -U postgres"] |  | ||||||
|       interval: 10s |  | ||||||
|       timeout: 5s |  | ||||||
|       retries: 5 |  | ||||||
|     env_file: |  | ||||||
|       - .env.dev |  | ||||||
|       - .env |  | ||||||
|     image: postgres:${POSTGRES_VERSION:-15}-alpine |  | ||||||
|     environment: |  | ||||||
|       - "POSTGRES_HOST_AUTH_METHOD=trust" |  | ||||||
|     command: postgres ${POSTGRES_ARGS:-} |  | ||||||
|     volumes: |  | ||||||
|       - "./data/${COMPOSE_PROJECT_NAME:-node1}/postgres:/var/lib/postgresql/data" |  | ||||||
|     networks: |  | ||||||
|       - internal |  | ||||||
| 
 |  | ||||||
|   redis: |  | ||||||
|     env_file: |  | ||||||
|       - .env.dev |  | ||||||
|       - .env |  | ||||||
|     image: redis:7-alpine |  | ||||||
|     volumes: |  | ||||||
|       - "./data/${COMPOSE_PROJECT_NAME:-node1}/redis:/data" |  | ||||||
|     networks: |  | ||||||
|       - internal |  | ||||||
| 
 |  | ||||||
|   api: |  | ||||||
|     <<: *django |  | ||||||
|     command: > |  | ||||||
|       bash -c "funkwhale-manage collectstatic --no-input |  | ||||||
|       && uvicorn --reload config.asgi:application --host 0.0.0.0 --port 5000  --reload-dir config/ --reload-dir=funkwhale_api/" |  | ||||||
|     cap_add: |  | ||||||
|       - SYS_PTRACE |  | ||||||
| 
 |  | ||||||
|   celeryworker: |  | ||||||
|     <<: *django |  | ||||||
|     command: celery -A funkwhale_api.taskapp worker -l debug -B --concurrency=${CELERYD_CONCURRENCY-0} |  | ||||||
| 
 |  | ||||||
|   nginx: |  | ||||||
|     env_file: |  | ||||||
|       - .env.dev |  | ||||||
|       - .env |  | ||||||
|     image: nginx |  | ||||||
|     environment: |  | ||||||
|       - "NGINX_MAX_BODY_SIZE=${NGINX_MAX_BODY_SIZE:-100M}" |  | ||||||
|       - "FUNKWHALE_API_HOST=${FUNKWHALE_API_HOST:-api}" |  | ||||||
|       - "FUNKWHALE_API_PORT=${FUNKWHALE_API_PORT:-5000}" |  | ||||||
|       - "FUNKWHALE_FRONT_IP=${FUNKWHALE_FRONT_IP:-front}" |  | ||||||
|       - "FUNKWHALE_FRONT_PORT=${VUE_PORT:-8080}" |  | ||||||
|       - "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" |  | ||||||
|       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME:-localhost}" |  | ||||||
|       - "STATIC_ROOT=/staticfiles" |  | ||||||
|     depends_on: |  | ||||||
|       - api |  | ||||||
|       - front |  | ||||||
|     volumes: |  | ||||||
|       - ./docker/nginx/conf.dev:/etc/nginx/templates/default.conf.template:ro |  | ||||||
|       - "${MUSIC_DIRECTORY_SERVE_PATH:-./data/music}:/music:ro" |  | ||||||
|       - ./deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro |  | ||||||
|       - "./front:/frontend:ro" |  | ||||||
|       - "./data/staticfiles:/usr/share/nginx/html/staticfiles:ro" |  | ||||||
|       - "./data/media:/protected/media:ro" |  | ||||||
|     networks: |  | ||||||
|       - federation |  | ||||||
|       - internal |  | ||||||
| 
 |  | ||||||
|     labels: |  | ||||||
|       traefik.backend: "${COMPOSE_PROJECT_NAME}" |  | ||||||
|       traefik.frontend.rule: "Host:${COMPOSE_PROJECT_NAME}.funkwhale.test" |  | ||||||
|       traefik.enable: "true" |  | ||||||
|       traefik.federation.protocol: "http" |  | ||||||
|       traefik.federation.port: "80" |  | ||||||
|       traefik.frontend.passHostHeader: true |  | ||||||
|       traefik.docker.network: federation |  | ||||||
|  |  | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | networks: | ||||||
|  |   internal: | ||||||
|  |   federation: | ||||||
|  |     external: true | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |   front: | ||||||
|  |     build: | ||||||
|  |       context: ../front | ||||||
|  |       dockerfile: Dockerfile.dev | ||||||
|  |     ports: | ||||||
|  |       - "${VUE_PORT:-8080}:${VUE_PORT:-8080}" | ||||||
|  |     environment: | ||||||
|  |       - HOST | ||||||
|  |       - VUE_PORT | ||||||
|  |     volumes: | ||||||
|  |       - "../front:/app" | ||||||
|  |       - "/app/node_modules" | ||||||
|  |       - "../po:/po" | ||||||
|  |     networks: | ||||||
|  |       - internal | ||||||
|  |     command: "yarn dev --host" | ||||||
|  | 
 | ||||||
|  |   postgres: | ||||||
|  |     image: "postgres:${POSTGRES_VERSION:-15}-alpine" | ||||||
|  |     environment: | ||||||
|  |       - POSTGRES_HOST_AUTH_METHOD | ||||||
|  |     command: postgres ${POSTGRES_ARGS:-} | ||||||
|  |     volumes: | ||||||
|  |       - "../data/${COMPOSE_PROJECT_NAME:-funkwhale}/postgres:/var/lib/postgresql/data" | ||||||
|  |     networks: | ||||||
|  |       - internal | ||||||
|  |     healthcheck: | ||||||
|  |       test: ["CMD-SHELL", "pg_isready -U postgres"] | ||||||
|  |       interval: 10s | ||||||
|  |       timeout: 5s | ||||||
|  |       retries: 5 | ||||||
|  | 
 | ||||||
|  |   redis: | ||||||
|  |     image: redis:7-alpine | ||||||
|  |     volumes: | ||||||
|  |       - "../data/${COMPOSE_PROJECT_NAME:-funkwhale}/redis:/data" | ||||||
|  |     networks: | ||||||
|  |       - internal | ||||||
|  |     healthcheck: | ||||||
|  |       test: ["CMD", "redis-cli", "ping"] | ||||||
|  |       interval: 10s | ||||||
|  |       timeout: 5s | ||||||
|  |       retries: 3 | ||||||
|  | @ -0,0 +1,32 @@ | ||||||
|  | x-django: &django | ||||||
|  |   image: funkwhale-api | ||||||
|  |   volumes: | ||||||
|  |     - ../api:/app | ||||||
|  |     - "${MUSIC_DIRECTORY_SERVE_PATH-../data/music}:/music:ro" | ||||||
|  |     - "../data/plugins:/srv/funkwhale/plugins" | ||||||
|  |     - "../data/staticfiles:/staticfiles" | ||||||
|  |     - "../data/media:/protected/media" | ||||||
|  |     - "../data/${COMPOSE_PROJECT_NAME}/media:/data/media" | ||||||
|  |   depends_on: | ||||||
|  |     postgres: | ||||||
|  |       condition: service_healthy | ||||||
|  |     redis: | ||||||
|  |       condition: service_healthy | ||||||
|  |   networks: | ||||||
|  |     - internal | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |   api: | ||||||
|  |     <<: *django | ||||||
|  |     build: | ||||||
|  |       context: ../api | ||||||
|  |       dockerfile: Dockerfile | ||||||
|  |       args: | ||||||
|  |         install_dev_deps: 1 | ||||||
|  |     command: > | ||||||
|  |       bash -c "funkwhale-manage collectstatic --no-input | ||||||
|  |       && uvicorn --reload config.asgi:application --host 0.0.0.0 --port 5000  --reload-dir config/ --reload-dir=funkwhale_api/" | ||||||
|  | 
 | ||||||
|  |   celeryworker: | ||||||
|  |     <<: *django | ||||||
|  |     command: celery -A funkwhale_api.taskapp worker -l debug -B --concurrency=${CELERYD_CONCURRENCY} | ||||||
|  | @ -0,0 +1,18 @@ | ||||||
|  | services: | ||||||
|  |   nginx: | ||||||
|  |     image: nginx | ||||||
|  |     depends_on: | ||||||
|  |       - api | ||||||
|  |       - front | ||||||
|  |     volumes: | ||||||
|  |       - "${MUSIC_DIRECTORY_SERVE_PATH:-../data/music}:${MUSIC_DIRECTORY_PATH:-/music}:ro" | ||||||
|  | 
 | ||||||
|  |       - ./etc/nginx/conf.dev:/etc/nginx/templates/default.conf.template:ro | ||||||
|  |       - ../deploy/funkwhale_proxy.conf:/etc/nginx/funkwhale_proxy.conf:ro | ||||||
|  | 
 | ||||||
|  |       - ../front:/frontend:ro | ||||||
|  |       - ../data/staticfiles:/usr/share/nginx/html/staticfiles:ro | ||||||
|  |       - ../data/media:/protected/media:ro | ||||||
|  |       - ../data/${COMPOSE_PROJECT_NAME}/media:/data/media:ro | ||||||
|  |     networks: | ||||||
|  |       - internal | ||||||
|  | @ -0,0 +1,86 @@ | ||||||
|  | networks: | ||||||
|  |   internal: | ||||||
|  |   federation: | ||||||
|  |     external: true | ||||||
|  | 
 | ||||||
|  | x-federation: &federation | ||||||
|  |   environment: | ||||||
|  |     - DEBUG | ||||||
|  | 
 | ||||||
|  |     - 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 | ||||||
|  | 
 | ||||||
|  |     - "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 | ||||||
|  | 
 | ||||||
|  |     - C_FORCE_ROOT | ||||||
|  |     - PYTHONDONTWRITEBYTECODE | ||||||
|  |     - PYTHONTRACEMALLOC | ||||||
|  | 
 | ||||||
|  |   dns: 172.17.0.1 | ||||||
|  |   dns_search: funkwhale.test | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |   api: | ||||||
|  |     extends: | ||||||
|  |       file: ./app.django.yml | ||||||
|  |       service: api | ||||||
|  |     <<: *federation | ||||||
|  | 
 | ||||||
|  |   celeryworker: | ||||||
|  |     extends: | ||||||
|  |       file: ./app.django.yml | ||||||
|  |       service: celeryworker | ||||||
|  |     <<: *federation | ||||||
|  | 
 | ||||||
|  |   nginx: | ||||||
|  |     extends: | ||||||
|  |       file: ./app.nginx.yml | ||||||
|  |       service: nginx | ||||||
|  |     environment: | ||||||
|  |       - "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}" | ||||||
|  |       - "FUNKWHALE_HOSTNAME=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}" | ||||||
|  | 
 | ||||||
|  |       - FUNKWHALE_PROTOCOL | ||||||
|  | 
 | ||||||
|  |       - FUNKWHALE_API_HOST | ||||||
|  |       - FUNKWHALE_API_PORT | ||||||
|  | 
 | ||||||
|  |       - FUNKWHALE_FRONT_IP | ||||||
|  |       - FUNKWHALE_FRONT_PORT | ||||||
|  | 
 | ||||||
|  |       - NGINX_MAX_BODY_SIZE | ||||||
|  | 
 | ||||||
|  |       - STATIC_ROOT | ||||||
|  |       - "MEDIA_ROOT=${MEDIA_ROOT:-/data/media}" | ||||||
|  |     networks: | ||||||
|  |       - federation | ||||||
|  |       - internal | ||||||
|  | 
 | ||||||
|  |     labels: | ||||||
|  |       - "traefik.enable=true" | ||||||
|  | 
 | ||||||
|  |       - "traefik.http.routers.funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)" | ||||||
|  |       - "traefik.http.routers.funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-web.entrypoints=web" | ||||||
|  | 
 | ||||||
|  |       - "traefik.http.routers.funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.rule=Host(`${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}`)" | ||||||
|  |       - "traefik.http.routers.funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.entrypoints=webs" | ||||||
|  | 
 | ||||||
|  |       - "traefik.http.routers.funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls=true" | ||||||
|  |       - "traefik.http.routers.funkwhale-${COMPOSE_PROJECT_NAME:-funkwhale}-webs.tls.domains[0].main=${COMPOSE_PROJECT_NAME:-funkwhale}.${FUNKWHALE_DOMAIN}" | ||||||
|  | @ -0,0 +1,69 @@ | ||||||
|  | networks: | ||||||
|  |   internal: | ||||||
|  | 
 | ||||||
|  | x-local: &local | ||||||
|  |   environment: | ||||||
|  |     - DEBUG | ||||||
|  | 
 | ||||||
|  |     - DJANGO_SETTINGS_MODULE | ||||||
|  |     - DJANGO_SECRET_KEY | ||||||
|  | 
 | ||||||
|  |     - "FORCE_HTTPS_URLS=${FORCE_HTTPS_URLS:-False}" | ||||||
|  |     - FUNKWHALE_PROTOCOL | ||||||
|  |     - FUNKWHALE_HOSTNAME | ||||||
|  |     - FUNKWHALE_PORT | ||||||
|  | 
 | ||||||
|  |     - DATABASE_URL | ||||||
|  |     - CACHE_URL | ||||||
|  | 
 | ||||||
|  |     - STATIC_URL | ||||||
|  |     - MEDIA_URL | ||||||
|  | 
 | ||||||
|  |     - STATIC_ROOT | ||||||
|  |     - MEDIA_ROOT | ||||||
|  | 
 | ||||||
|  |     - FUNKWHALE_SPA_HTML_ROOT | ||||||
|  |     - LDAP_ENABLED | ||||||
|  |     - BROWSABLE_API_ENABLED | ||||||
|  | 
 | ||||||
|  |     - C_FORCE_ROOT | ||||||
|  |     - PYTHONDONTWRITEBYTECODE | ||||||
|  |     - PYTHONTRACEMALLOC | ||||||
|  | 
 | ||||||
|  | services: | ||||||
|  |   api: | ||||||
|  |     extends: | ||||||
|  |       file: ./app.django.yml | ||||||
|  |       service: api | ||||||
|  |     <<: *local | ||||||
|  | 
 | ||||||
|  |   celeryworker: | ||||||
|  |     extends: | ||||||
|  |       file: ./app.django.yml | ||||||
|  |       service: celeryworker | ||||||
|  |     <<: *local | ||||||
|  | 
 | ||||||
|  |   nginx: | ||||||
|  |     extends: | ||||||
|  |       file: ./app.nginx.yml | ||||||
|  |       service: nginx | ||||||
|  |     ports: | ||||||
|  |       - "${NGINX_HOST_PORT:-8000:80}" | ||||||
|  |     environment: | ||||||
|  |       - "MUSIC_DIRECTORY_PATH=${MUSIC_DIRECTORY_PATH:-/music}" | ||||||
|  |       - "FUNKWHALE_HOSTNAME=${FUNKWHALE_HOSTNAME:-localhost}" | ||||||
|  | 
 | ||||||
|  |       - FUNKWHALE_PROTOCOL | ||||||
|  | 
 | ||||||
|  |       - FUNKWHALE_API_HOST | ||||||
|  |       - FUNKWHALE_API_PORT | ||||||
|  | 
 | ||||||
|  |       - FUNKWHALE_FRONT_IP | ||||||
|  |       - FUNKWHALE_FRONT_PORT | ||||||
|  | 
 | ||||||
|  |       - NGINX_MAX_BODY_SIZE | ||||||
|  | 
 | ||||||
|  |       - STATIC_ROOT | ||||||
|  |       - "MEDIA_ROOT=${MEDIA_ROOT:-/data/media}" | ||||||
|  |     networks: | ||||||
|  |       - internal | ||||||
		Loading…
	
		Reference in New Issue
	
	 jon r
						jon r