2023-04-19 14:27:50 -05:00
|
|
|
services:
|
|
|
|
|
odoo:
|
2024-01-20 06:20:58 -06:00
|
|
|
container_name: odoo
|
2023-04-19 14:27:50 -05:00
|
|
|
build:
|
|
|
|
|
context: ./
|
|
|
|
|
dockerfile: ./odoo/Dockerfile
|
2023-08-25 02:08:56 -05:00
|
|
|
args:
|
2023-08-26 16:23:45 -05:00
|
|
|
- ODOO_TAG
|
2023-08-25 02:08:56 -05:00
|
|
|
- ODOO_RC
|
|
|
|
|
- ROOT_PATH
|
2023-12-19 02:17:56 -07:00
|
|
|
- ENTERPRISE_USER
|
|
|
|
|
- ENTERPRISE_ACCESS_TOKEN
|
|
|
|
|
- ENTERPRISE_ADDONS
|
2023-08-25 02:08:56 -05:00
|
|
|
- GITHUB_USER
|
|
|
|
|
- GITHUB_ACCESS_TOKEN
|
2023-09-27 22:47:22 -05:00
|
|
|
- THIRD_PARTY_ADDONS
|
2023-08-25 02:08:56 -05:00
|
|
|
- LOG_PATH
|
2023-10-20 00:07:37 -05:00
|
|
|
- USE_REDIS
|
|
|
|
|
- USE_S3
|
|
|
|
|
- USE_SENTRY
|
2023-04-19 14:27:50 -05:00
|
|
|
tty: true
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2023-04-19 14:27:50 -05:00
|
|
|
volumes:
|
2023-09-28 13:43:49 -05:00
|
|
|
- odoo-data:${DATA_DIR}
|
2023-04-19 14:27:50 -05:00
|
|
|
- ./odoo/extra-addons:${EXTRA_ADDONS}
|
|
|
|
|
- ./odoo/custom-addons:${CUSTOM_ADDONS}
|
|
|
|
|
- ./odoo/entrypoint.sh:/entrypoint.sh
|
2023-10-01 00:55:06 -05:00
|
|
|
environment:
|
|
|
|
|
- HOST=${DB_HOST}
|
|
|
|
|
- PORT=${DB_PORT}
|
|
|
|
|
- USER=${DB_USER}
|
|
|
|
|
- PASSWORD=${DB_PASSWORD}
|
|
|
|
|
- ODOO_TAG
|
2023-10-17 22:10:08 -05:00
|
|
|
- ODOO_RC
|
2023-10-19 19:14:12 -05:00
|
|
|
- USE_REDIS
|
|
|
|
|
- USE_S3
|
|
|
|
|
- USE_SENTRY
|
2023-10-01 00:55:06 -05:00
|
|
|
- THIRD_PARTY_ADDONS
|
2023-10-06 23:55:18 -05:00
|
|
|
- ODOO_SESSION_REDIS
|
|
|
|
|
- ODOO_SESSION_REDIS_HOST
|
|
|
|
|
- ODOO_SESSION_REDIS_PORT
|
|
|
|
|
- ODOO_SESSION_REDIS_PASSWORD
|
|
|
|
|
- ODOO_SESSION_REDIS_URL
|
|
|
|
|
- ODOO_SESSION_REDIS_PREFIX
|
2023-10-07 05:43:40 -05:00
|
|
|
- ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME
|
|
|
|
|
- ODOO_SESSION_REDIS_SENTINEL_HOST
|
|
|
|
|
- ODOO_SESSION_REDIS_SENTINEL_PORT
|
2023-10-06 23:55:18 -05:00
|
|
|
- ODOO_SESSION_REDIS_EXPIRATION
|
|
|
|
|
- ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS
|
|
|
|
|
- AWS_HOST
|
|
|
|
|
- AWS_REGION
|
|
|
|
|
- AWS_ACCESS_KEY_ID
|
|
|
|
|
- AWS_SECRET_ACCESS_KEY
|
|
|
|
|
- AWS_BUCKETNAME
|
2023-04-19 14:27:50 -05:00
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-10-19 22:11:19 -05:00
|
|
|
profiles: [$ODOO_PROFILES]
|
2023-04-19 14:27:50 -05:00
|
|
|
|
|
|
|
|
postgres:
|
2024-01-20 06:20:58 -06:00
|
|
|
container_name: postgres
|
2023-04-19 14:27:50 -05:00
|
|
|
build:
|
2023-09-27 22:47:22 -05:00
|
|
|
context: ./
|
|
|
|
|
dockerfile: ./postgres/Dockerfile
|
2023-08-26 16:23:45 -05:00
|
|
|
args:
|
|
|
|
|
- POSTGRES_TAG
|
2023-04-19 14:27:50 -05:00
|
|
|
tty: true
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2023-04-19 14:27:50 -05:00
|
|
|
volumes:
|
|
|
|
|
- pg-data:${PGDATA}
|
|
|
|
|
- ./postgres/entrypoint.sh:/docker-entrypoint-initdb.d/entrypoint.sh
|
|
|
|
|
environment:
|
|
|
|
|
- POSTGRES_DB
|
|
|
|
|
- POSTGRES_USER
|
|
|
|
|
- POSTGRES_PASSWORD
|
|
|
|
|
- PGDATA
|
2023-09-27 22:47:22 -05:00
|
|
|
- DB_USER
|
|
|
|
|
- DB_TEMPLATE
|
|
|
|
|
- UNACCENT_TEMPLATE
|
|
|
|
|
- PGADMING_DB_NAME
|
|
|
|
|
- PGADMING_DB_USER
|
|
|
|
|
- PGADMIN_DB_PASSWORD
|
2023-04-19 14:27:50 -05:00
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-10-19 22:11:19 -05:00
|
|
|
profiles: [$POSTGRES_PROFILES]
|
2023-04-19 14:27:50 -05:00
|
|
|
|
2024-01-20 17:55:25 +01:00
|
|
|
pgbouncer:
|
|
|
|
|
image: edoburu/pgbouncer:latest
|
|
|
|
|
container_name: pgbouncer
|
|
|
|
|
restart: always
|
|
|
|
|
depends_on:
|
|
|
|
|
- db
|
|
|
|
|
environment:
|
|
|
|
|
- DB_HOST=db
|
|
|
|
|
- DB_USER=odoo
|
|
|
|
|
- DB_PASSWORD=odoo
|
|
|
|
|
- MAX_CLIENT_CONN=500
|
|
|
|
|
- POOL_MODE=transaction
|
|
|
|
|
- ADMIN_USERS=postgres,dbuser,odoo
|
|
|
|
|
profiles: [$PGBOUNCER_PROFILES]
|
|
|
|
|
|
2023-04-19 14:27:50 -05:00
|
|
|
nginx:
|
2024-01-20 06:20:58 -06:00
|
|
|
container_name: nginx
|
2023-08-26 16:23:45 -05:00
|
|
|
image: nginx:${NGINX_TAG}
|
2023-04-19 14:27:50 -05:00
|
|
|
depends_on:
|
|
|
|
|
- odoo
|
|
|
|
|
tty: true
|
|
|
|
|
expose:
|
|
|
|
|
- 80/tcp
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2023-04-19 14:27:50 -05:00
|
|
|
volumes:
|
|
|
|
|
- ./nginx/nginx.conf:${NGINX_CONF}
|
|
|
|
|
- ./nginx/default.conf:${NGINX_DEFAULT_CONF}
|
|
|
|
|
environment:
|
|
|
|
|
- VIRTUAL_HOST
|
|
|
|
|
- LETSENCRYPT_HOST
|
|
|
|
|
- LETSENCRYPT_EMAIL
|
|
|
|
|
- CORS_ALLOWED_DOMAIN
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-10-19 22:11:19 -05:00
|
|
|
profiles: [$NGINX_PROFILES]
|
2023-04-19 14:27:50 -05:00
|
|
|
|
|
|
|
|
nginx-proxy:
|
2024-01-20 06:20:58 -06:00
|
|
|
container_name: nginx-proxy
|
2023-08-26 16:23:45 -05:00
|
|
|
image: nginxproxy/nginx-proxy:${NGINX_PROXY_TAG}
|
2023-04-19 14:27:50 -05:00
|
|
|
depends_on:
|
|
|
|
|
- nginx
|
|
|
|
|
tty: true
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2023-04-19 14:27:50 -05:00
|
|
|
volumes:
|
|
|
|
|
- ./nginx-proxy/nginx.conf:${NGINX_CONF}
|
|
|
|
|
- ./nginx-proxy/cors.conf:${NGINX_PROXY_CORS_CONF}
|
|
|
|
|
- html:${NGINX_HTML}
|
2023-10-19 19:14:12 -05:00
|
|
|
- vhost:${NGINX_VHOST}
|
|
|
|
|
- certs:${NGINX_CERTS}:ro
|
2023-04-19 14:27:50 -05:00
|
|
|
- ${DOCKER_SOCK}:${TEMP_DOCKER_SOCK}:ro
|
|
|
|
|
environment:
|
|
|
|
|
- TRUST_DOWNSTREAM_PROXY
|
|
|
|
|
- CORS_ALLOWED_DOMAIN
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-10-19 22:11:19 -05:00
|
|
|
profiles: [$NGINX_PROXY_PROFILES]
|
2023-04-19 14:27:50 -05:00
|
|
|
|
2024-01-10 14:13:35 +01:00
|
|
|
traefik:
|
|
|
|
|
container_name: traefik
|
|
|
|
|
image: "traefik:${TRAEFIK_TAG}"
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
|
|
|
|
command:
|
2024-01-20 06:11:18 -06:00
|
|
|
- --api.dashboard=${API_DASHBOARD}
|
|
|
|
|
- --api.insecure=${API_INSECURE}
|
|
|
|
|
- --api.debug=${API_DEBUG}
|
|
|
|
|
- --entrypoints.web.address=${ENTRYPOINTS_WEB_ADDRESS}
|
2024-01-10 14:13:35 +01:00
|
|
|
- --providers.docker
|
2024-01-20 06:11:18 -06:00
|
|
|
- --log.level=${TRAEFIK_LOG_LEVEL}
|
|
|
|
|
- --accesslog.filepath=${ACCESSLOG_FILEPATH}
|
|
|
|
|
- --serversTransport.insecureSkipVerify=${INSERCURE_SKIP_VERIFY}
|
2024-01-10 14:13:35 +01:00
|
|
|
tty: true
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2024-01-10 14:13:35 +01:00
|
|
|
volumes:
|
2024-01-20 06:11:18 -06:00
|
|
|
- ${DOCKER_SOCK}:${DOCKER_SOCK}:ro
|
|
|
|
|
- ./acme.json:${ACME_JSON}
|
|
|
|
|
- traefik_logs:${TRAEFIK_LOGS}
|
2024-01-10 14:13:35 +01:00
|
|
|
labels:
|
2024-01-20 06:11:18 -06:00
|
|
|
- traefik.enable=${TRAEFIK_ENABLE}
|
2024-01-10 14:13:35 +01:00
|
|
|
# Catch all HTTP trafic and redirect it to HTTPS
|
2024-01-20 06:11:18 -06:00
|
|
|
- traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)
|
|
|
|
|
- traefik.http.routers.http-catchall.entrypoints=${HTTP_CATCHALL_ENTRYPOINTS}
|
2024-01-10 14:13:35 +01:00
|
|
|
# Traefik Dashboard route
|
2024-01-20 06:11:18 -06:00
|
|
|
- traefik.http.routers.traefik-dashboard.rule=Host(`${TRAEFIK_DASHBOARD_DOMAIN}`)
|
|
|
|
|
- traefik.http.routers.traefik-dashboard.service=${TRAEFIK_DASHBOARD_SERVICE}
|
2024-01-10 14:13:35 +01:00
|
|
|
profiles: [$TRAEFIK_PROFILES]
|
|
|
|
|
|
2024-01-20 06:21:46 -06:00
|
|
|
acme-companion:
|
2024-01-20 06:20:58 -06:00
|
|
|
container_name: acme-companion
|
2023-12-19 19:37:24 -07:00
|
|
|
image: nginxproxy/acme-companion:${ACME_COMPANION_TAG}
|
|
|
|
|
depends_on:
|
|
|
|
|
- nginx-proxy
|
|
|
|
|
volumes_from:
|
|
|
|
|
- nginx-proxy:rw
|
|
|
|
|
volumes:
|
|
|
|
|
- certs:${NGINX_CERTS}:rw
|
|
|
|
|
- acme:${NGINX_ACME}
|
|
|
|
|
- ${DOCKER_SOCK}:${DOCKER_SOCK}:ro
|
|
|
|
|
environment:
|
|
|
|
|
- ACME_CA_URI
|
|
|
|
|
- CERTS_UPDATE_INTERVAL
|
|
|
|
|
- DEFAULT_EMAIL
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
|
|
|
|
profiles: [$ACME_COMPANION_PROFILES]
|
|
|
|
|
|
2024-01-20 06:20:58 -06:00
|
|
|
keydb:
|
|
|
|
|
container_name: keydb
|
2023-10-19 19:14:12 -05:00
|
|
|
image: eqalpha/keydb:${KEYDB_TAG}
|
|
|
|
|
platform: linux/amd64
|
|
|
|
|
ports:
|
|
|
|
|
- ${KEYDB_PORT}:${KEYDB_PORT}
|
|
|
|
|
volumes:
|
|
|
|
|
- redis-data:${KEYDB_DATA}
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-10-19 22:11:19 -05:00
|
|
|
profiles: [$KEYDB_PROFILES]
|
2023-10-19 19:14:12 -05:00
|
|
|
|
2024-01-20 06:20:58 -06:00
|
|
|
minio:
|
|
|
|
|
container_name: minio
|
2023-10-19 19:14:12 -05:00
|
|
|
image: minio/minio:${MINIO_TAG}
|
|
|
|
|
environment:
|
|
|
|
|
- MINIO_ROOT_USER
|
|
|
|
|
- MINIO_ROOT_PASSWORD
|
|
|
|
|
- MINIO_BROWSER_REDIRECT_URL
|
|
|
|
|
- VIRTUAL_HOST=${MINIO_VIRTUAL_HOST}
|
|
|
|
|
- VIRTUAL_PORT=${MINIO_CONSOLE_PORT}
|
|
|
|
|
command: server ${MINIO_DATA} --console-address ":${MINIO_CONSOLE_PORT}"
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2023-10-19 19:14:12 -05:00
|
|
|
volumes:
|
|
|
|
|
- s3-data:${MINIO_DATA}
|
|
|
|
|
ports:
|
|
|
|
|
- ${MINIO_API_PORT}:${MINIO_API_PORT}
|
|
|
|
|
- ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
2023-10-19 22:11:19 -05:00
|
|
|
profiles: [$MINIO_PROFILES]
|
|
|
|
|
|
|
|
|
|
pgadmin:
|
2024-01-20 06:20:58 -06:00
|
|
|
container_name: pgadmin
|
2023-10-19 22:11:19 -05:00
|
|
|
build:
|
|
|
|
|
context: ./
|
|
|
|
|
dockerfile: ./pgadmin/Dockerfile
|
|
|
|
|
args:
|
|
|
|
|
- PGADMIN_TAG
|
2023-12-15 16:55:25 -07:00
|
|
|
depends_on:
|
|
|
|
|
- nginx-proxy
|
2023-10-19 22:11:19 -05:00
|
|
|
expose:
|
|
|
|
|
- 80
|
2024-01-10 14:27:56 +01:00
|
|
|
shm_size: 1gb
|
2023-10-19 22:11:19 -05:00
|
|
|
volumes:
|
|
|
|
|
- pgadmin-data:${PGADMIN_DATA}
|
|
|
|
|
environment:
|
|
|
|
|
- PGADMIN_DEFAULT_EMAIL
|
|
|
|
|
- PGADMIN_DEFAULT_PASSWORD
|
|
|
|
|
- VIRTUAL_HOST=${PGADMIN_VIRTUAL_HOST}
|
|
|
|
|
- LETSENCRYPT_HOST=${PGADMIN_LETSENCRYPT_HOST}
|
|
|
|
|
- LETSENCRYPT_EMAIL=${PGADMIN_LETSENCRYPT_EMAIL}
|
|
|
|
|
- PGADMIN_CONFIG_APP_NAME
|
|
|
|
|
- PGADMIN_CONFIG_CONFIG_DATABASE_CONNECTION_POOL_SIZE
|
|
|
|
|
- PGADMIN_CONFIG_SERVER_MODE
|
|
|
|
|
- PGADMIN_CONFIG_DEFAULT_SERVER
|
|
|
|
|
- PGADMIN_CONFIG_DEFAULT_SERVER_PORT
|
|
|
|
|
- PGADMIN_CONFIG_PASSWORD_LENGTH_MIN
|
|
|
|
|
- PGADMIN_CONFIG_MAX_SESSION_IDLE_TIME
|
|
|
|
|
- PGADMIN_CONFIG_CONFIG_DATABASE_URI
|
|
|
|
|
- PGADMIN_CONFIG_ALLOW_SAVE_PASSWORD
|
|
|
|
|
- PGADMIN_CONFIG_MAX_QUERY_HIST_STORED
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_SERVER
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_PORT
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_USE_SSL
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_USE_TLS
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_USERNAME
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_PASSWORD
|
|
|
|
|
- PGADMIN_CONFIG_MAIL_DEBUG
|
|
|
|
|
- PGADMIN_CONFIG_SECURITY_EMAIL_SENDER
|
|
|
|
|
- PGADMIN_CONFIG_ALLOW_SAVE_TUNNEL_PASSWORD
|
|
|
|
|
- PGADMIN_CONFIG_MAX_LOGIN_ATTEMPTS
|
|
|
|
|
networks:
|
|
|
|
|
- internal
|
|
|
|
|
profiles: [$PGADMIN_PROFILES]
|
2023-10-19 19:14:12 -05:00
|
|
|
|
2023-04-19 14:27:50 -05:00
|
|
|
volumes:
|
2023-09-28 13:43:49 -05:00
|
|
|
odoo-data:
|
2023-04-19 14:27:50 -05:00
|
|
|
pg-data:
|
2023-09-28 13:43:49 -05:00
|
|
|
redis-data:
|
2023-10-01 17:47:02 -05:00
|
|
|
s3-data:
|
2023-10-19 22:11:19 -05:00
|
|
|
pgadmin-data:
|
2023-04-19 14:27:50 -05:00
|
|
|
html:
|
2023-10-19 19:14:12 -05:00
|
|
|
vhost:
|
|
|
|
|
certs:
|
2023-10-19 22:11:19 -05:00
|
|
|
acme:
|
2024-01-10 14:13:35 +01:00
|
|
|
traefik_logs:
|
2023-04-19 14:27:50 -05:00
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
internal:
|
2023-08-25 02:08:56 -05:00
|
|
|
driver: bridge
|