Files
OSIT-AE-Docker-Env/docker-compose.yml

137 lines
5.5 KiB
YAML

services:
web:
restart: unless-stopped
container_name: ${CONTAINER_WEB}
build:
context: ./
dockerfile: aether_nginx.Dockerfile
env_file:
- ./.env
environment:
- PUID=1000
- PGID=1000
- NGINX_SERVER_NAMES="flask_gunicorn.localhost demo.localhost dev.localhost dev.oneskyit.com dev-app.oneskyit.com dev-connect.oneskyit.com dev-demo.oneskyit.com dev-aacc.oneskyit.com dev-aapor.oneskyit.com dev-ascm.oneskyit.com dev-businessgroup.oneskyt.com dev-chow.oneskyit.com dev-cmsc.oneskyit.com dev-idaa.oneskyit.com dev-ishlt.oneskyit.com dev-lci.oneskyit.com dev-ncsd.oneskyit.com dev-npa.oneskyit.com dev-rli.oneskyit.com test-app.oneskyit.com"
ports:
- "${OSIT_WEB_HTTP_PORT}:80"
- "${OSIT_WEB_HTTPS_PORT}:443"
- "${AE_API_GATEWAY_PORT}:80" # Entry point for external API traffic (HTTP)
volumes:
- ./srv/html_php:/srv/html_php
- ./srv/oneskyit_site:/srv/oneskyit_site
- ${HOSTED_FILES_SRC}:/srv/hosted_files
- ${HOSTED_TMP_SRC}:/srv/hosted_tmp
- ./conf/nginx/options-ssl-nginx.conf:/etc/nginx/options-ssl-nginx.conf
- ./conf/nginx/site.conf:/etc/nginx/conf.d/0_site.conf
- ./conf/nginx/site-enabled_aether_fastapi_gunicorn.conf:/etc/nginx/templates/site-enabled_aether_fastapi_gunicorn.conf.template
- ./conf/nginx/site-enabled_aether_flask_gunicorn.conf:/etc/nginx/templates/site-enabled_aether_flask_gunicorn.conf.template
- ./conf/certs/oneskyit_wild_fullchain.pem:/etc/certs/fullchain_wild.pem
- ./conf/certs/oneskyit_wild_privkey.pem:/etc/certs/privkey_wild.pem
- ./conf/certs/oneskyit.com_fullchain.pem:/etc/certs/fullchain.pem
- ./conf/certs/oneskyit.com_privkey.pem:/etc/certs/privkey.pem
- ./conf/certs/ssl-dhparams.pem:/etc/certs/ssl-dhparams.pem
- ./logs/web:/logs
depends_on:
- ae_api
- aether_app_gunicorn
redis:
restart: always
container_name: ${CONTAINER_REDIS}
image: redis
command: redis-server --save "" --loglevel warning
mariadb:
restart: always
image: mariadb:10.11
container_name: ae_mariadb_dev
command: [
"mysqld",
"--max-connections=${MARIADB_MAX_CONNECTIONS}",
"--innodb-buffer-pool-size=${MARIADB_INNODB_BUFFER_POOL_SIZE}",
"--query-cache-size=${MARIADB_QUERY_CACHE_SIZE}",
"--tmp-table-size=${MARIADB_TMP_TABLE_SIZE}",
"--max-heap-table-size=${MARIADB_TMP_TABLE_SIZE}",
"--table-open-cache=${MARIADB_TABLE_OPEN_CACHE}"
]
environment:
MYSQL_ROOT_PASSWORD: ${AE_DB_PASSWORD}
MYSQL_DATABASE: ${AE_DB_NAME}
MYSQL_USER: ${AE_DB_USERNAME}
MYSQL_PASSWORD: ${AE_DB_PASSWORD}
volumes:
- ./srv/mariadb:/var/lib/mysql
- ./conf/mariadb/server.cnf:/etc/mysql/conf.d/server.cnf
ports:
- "3306:3306"
phpmyadmin:
restart: always
image: phpmyadmin/phpmyadmin
container_name: ae_pma_dev
environment:
PMA_HOST: mariadb
UPLOAD_LIMIT: 64M
ports:
- "${AE_PMA_PORT}:80"
depends_on:
- mariadb
ae_api:
restart: always
# We don't use container_name here so we can scale
build:
context: ./
dockerfile: aether_fastapi_gunicorn.Dockerfile
scale: ${AE_API_REPLICAS}
env_file:
- ./.env
extra_hosts:
- "${DOCKER_AE_SERVER_EXTRA_HOST}"
- "${DOCKER_AE_APP_SERVER_EXTRA_HOST}"
- "${DOCKER_AE_API_SERVER_EXTRA_HOST}"
- "${DOCKER_AE_API_BAK_SERVER_EXTRA_HOST}"
- "${DOCKER_AE_DB_SERVER_EXTRA_HOST}"
- "linode.oneskyit.com:104.237.143.4"
volumes:
- ./conf/aether_fastapi_gunicorn_conf.py:/conf/gunicorn_fastapi_conf.py
- ./conf/aether_fastapi_requirements_current.txt:/requirements_current.txt
- ./conf/aether_api_config.py:/srv/aether_api/app/config.py
- ./logs/ae_api:/logs
- ${AE_API_SRC}:/srv/aether_api
- ${HOSTED_FILES_SRC}:/srv/hosted_files
- ${HOSTED_TMP_SRC}:/srv/hosted_tmp
- ./temp/ae_api:/temp
depends_on:
- redis
- mariadb
stdin_open: true
tty: true
aether_app_gunicorn:
restart: always
container_name: ${CONTAINER_AE_APP}
build:
context: ./
dockerfile: aether_flask_gunicorn.Dockerfile
env_file:
- ./.env
ports:
- "${AE_APP_GUNICORN_PORT}:5005"
extra_hosts:
- "${DOCKER_AE_SERVER_EXTRA_HOST}"
- "${DOCKER_AE_API_SERVER_EXTRA_HOST}"
- "${DOCKER_AE_API_BAK_SERVER_EXTRA_HOST}"
volumes:
- ./conf/aether_flask_gunicorn_conf.py:/conf/gunicorn_flask_conf.py
- ./conf/aether_flask_requirements_current.txt:/requirements_current.txt
- ./conf/aether_app_config.py:/srv/aether_app/flask_config_v2.py
- ./logs/ae_app:/logs
- ${AE_APP_SRC}:/srv/aether_app
- ${HOSTED_FILES_SRC}:/srv/hosted_files
- ${HOSTED_TMP_SRC}:/srv/hosted_tmp
- ./tmp/ae_app:/tmp
depends_on:
- ae_api
stdin_open: true
tty: true