Files
am-d-model.eu/docker-compose.yaml

169 lines
5.5 KiB
YAML

# yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json
services:
site:
build: .
networks:
- am-d-model-site-network
expose:
- "3000"
restart: unless-stopped
labels:
- "io.containers.autoupdate=local"
caddy:
image: docker.io/library/caddy:latest
# entrypoint: ["tail", "-f", "/dev/null"] # Debug
# command: ["tail", "-f", "/dev/null"] # Debug
depends_on:
- site
- invenio.am-d-model.eu
networks:
- am-d-model-proxy-network
- am-d-model-site-network
ports:
- "80:80"
- "443:443"
volumes:
- ./data/caddy:/data/caddy
- ./caddy:/etc/caddy
restart: unless-stopped
labels:
- "io.containers.autoupdate=registry"
# Repo containers start here
# Repo frontend:
invenio.am-d-model.eu:
extends:
file: repo/docker-services.yml
service: frontend
env_file: ./repo/.env
depends_on:
- web-ui
- web-api
volumes:
- static_data:/opt/invenio/var/instance/static
# Overwrite test certs with certs fetched by caddy
- ./data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/invenio.am-d-model.eu/invenio.am-d-model.eu.crt:/etc/ssl/certs/test.crt
- ./data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/invenio.am-d-model.eu/invenio.am-d-model.eu.key:/etc/ssl/private/test.key
# Also, lets inject some configuration for the outer proxy
# - ./caddy/proxy_settings.conf:/etc/nginx/conf.d/proxy_settings.conf
# - ./caddy/internal_server.conf:/etc/nginx/conf.d/internal_server.conf
ports:
- "8080:80"
- "8443:443"
networks:
- am-d-model-proxy-network
- am-d-model-repo-network
cache:
extends:
file: repo/docker-compose.full.yml
service: cache
env_file: ./repo/.env
networks:
- am-d-model-repo-network
db:
extends:
file: repo/docker-compose.full.yml
service: db
env_file: ./repo/.env
networks:
- am-d-model-repo-network
mq:
extends:
file: repo/docker-compose.full.yml
service: mq
env_file: ./repo/.env
networks:
- am-d-model-repo-network
search:
extends:
file: repo/docker-compose.full.yml
service: search
env_file: ./repo/.env
volumes:
- opensearch_config:/usr/share/opensearch/config
networks:
- am-d-model-repo-network
environment:
- discovery.type=single-node
s3:
extends:
file: repo/docker-compose.full.yml
service: s3
env_file: ./repo/.env
networks:
- am-d-model-repo-network
# UI Application
web-ui:
extends:
file: repo/docker-compose.full.yml
service: web-ui
env_file: ./repo/.env
build:
context: ./repo/
networks:
- am-d-model-repo-network
environment:
- INVENIO_APP_ALLOWED_HOSTS=["invenio.am-d-model.eu"]
- UWSGI_LOG_DEBUG=true
- UWSGI_LOG_REQ=true # Log requests
- UWSGI_LOG_SLOW=true # Log slow requests
- UWSGI_LOG_ZERO=true # Log empty requests
- UWSGI_LOG_DATE=true # Log dates of requests
- UWSGI_LOG_4XX=true # Log 4xx errors
- UWSGI_LOG_5XX=true # Log 5xx errors
- UWSGI_LOG_MICROS=true # Add microseconds to logs
- UWSGI_LOG_MASTER=true
- UWSGI_LOG_MASTER_FD=2 # This sends to stderr
- UWSGI_LOG_REQ=true
- UWSGI_LOG_MASTER_BUFSIZE=10000 # Optional, controls buffer size
- FLASK_DEBUG=1
# API Rest Application
web-api:
extends:
file: repo/docker-compose.full.yml
service: web-api
env_file: ./repo/.env
build:
context: ./repo/
networks:
- am-d-model-repo-network
environment:
- INVENIO_APP_ALLOWED_HOSTS=["invenio.am-d-model.eu"]
- UWSGI_LOG_DEBUG=true
- UWSGI_LOG_REQ=true # Log requests
- UWSGI_LOG_SLOW=true # Log slow requests
- UWSGI_LOG_ZERO=true # Log empty requests
- UWSGI_LOG_DATE=true # Log dates of requests
- UWSGI_LOG_4XX=true # Log 4xx errors
- UWSGI_LOG_5XX=true # Log 5xx errors
- UWSGI_LOG_MICROS=true # Add microseconds to logs
- UWSGI_LOG_MASTER=true
- UWSGI_LOG_MASTER_FD=2 # This sends to stderr
- UWSGI_LOG_REQ=true
- UWSGI_LOG_MASTER_BUFSIZE=10000 # Optional, controls buffer size
- FLASK_DEBUG=1
# Worker
worker:
extends:
file: repo/docker-compose.full.yml
service: worker
env_file: ./repo/.env
build:
context: ./repo/
networks:
- am-d-model-repo-network
networks:
am-d-model-site-network:
name: am-d-model-site-network
am-d-model-repo-network:
name: am-d-model-repo-network
am-d-model-proxy-network:
name: am-d-model-proxy-network
volumes:
caddy_data:
static_data:
redis_data:
opensearch_config: