added profiles for containers management

This commit is contained in:
Yhael S
2023-10-19 22:11:19 -05:00
parent 688a590282
commit 70fc974b62
7 changed files with 92 additions and 270 deletions

View File

@@ -5,21 +5,21 @@
APP_ENV=local
INIT=
UPDATE=
LOAD=base,web,session_redis,attachment_s3,sentry
LOAD=base,web
ROOT_PATH=/usr/lib/python3/dist-packages/odoo
WORKERS=2
DEV_MODE=reload,xml
DOMAIN=erp.odoocker.test
# Enterprise
GITHUB_USER=
GITHUB_ACCESS_TOKEN=
GITHUB_USER=yhaelopez
GITHUB_ACCESS_TOKEN=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
# Database
ADMIN_PASSWD=odoo
DB_HOST=postgres
DB_PORT=5432
DB_NAME=odoocker
DB_NAME=
DB_USER=odoo
DB_PASSWORD=odoo
LOAD_LANGUAGE=
@@ -43,7 +43,7 @@ SENTRY_EXCLUDE_LOGGERS=
SENTRY_IGNORE_EXCEPTIONS=
SENTRY_INCLUDE_CONTEXT=true
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=1.0
SENTRY_RELEASE=
SENTRY_ODOO_DIR=${ROOT_PATH}
# Nginx
@@ -114,6 +114,24 @@ PGADMIN_CONFIG_SERVER_MODE=True
PROJECT_NAME=odoocker
SUPPORT_EMAIL=mail@example.com
# Service configuration
USE_REDIS=false
USE_S3=false
USE_SENTRY=false
# Which services are going to be brought up
COMPOSE_PROFILES=base
# Service profiles
ODOO_PROFILES="base"
POSTGRES_PROFILES="base"
NGINX_PROFILES="base"
NGINX_PROXY_PROFILES="base"
ACME_COMPANION_PROFILES="ssl"
KEYDB_PROFILES="cache"
MINIO_PROFILES="storage"
PGADMIN_PROFILES="admin"
# Containers' Tags
ODOO_TAG=16.0
POSTGRES_TAG=16.0
@@ -124,7 +142,7 @@ NGINX_PROXY_TAG=1.3.1
ACME_COMPANION_TAG=2.2.8
PGADMIN_TAG=7.6
# Custom paths
# Odoocker paths
COMMUNITY_ADDONS=${ROOT_PATH}/addons
ENTERPRISE_ADDONS=${ROOT_PATH}/enterprise
THIRD_PARTY_ADDONS=${ROOT_PATH}/third-party-addons

View File

@@ -1,152 +0,0 @@
services:
odoo:
build:
context: ./
dockerfile: ./odoo/Dockerfile
args:
- ODOO_TAG
- ODOO_RC
- ROOT_PATH
- GITHUB_USER
- GITHUB_ACCESS_TOKEN
- ENTERPRISE_ADDONS
- THIRD_PARTY_ADDONS
- LOG_PATH
depends_on:
- postgres
tty: true
volumes:
- odoo-data:${DATA_DIR}
- ./odoo/extra-addons:${EXTRA_ADDONS}
- ./odoo/custom-addons:${CUSTOM_ADDONS}
- ./odoo/entrypoint.sh:/entrypoint.sh
environment:
- HOST=${DB_HOST}
- PORT=${DB_PORT}
- USER=${DB_USER}
- PASSWORD=${DB_PASSWORD}
- ODOO_TAG
- ODOO_RC
- THIRD_PARTY_ADDONS
- ODOO_SESSION_REDIS
- ODOO_SESSION_REDIS_HOST
- ODOO_SESSION_REDIS_PORT
- ODOO_SESSION_REDIS_PASSWORD
- ODOO_SESSION_REDIS_URL
- ODOO_SESSION_REDIS_PREFIX
- ODOO_SESSION_REDIS_SENTINEL_MASTER_NAME
- ODOO_SESSION_REDIS_SENTINEL_HOST
- ODOO_SESSION_REDIS_SENTINEL_PORT
- ODOO_SESSION_REDIS_EXPIRATION
- ODOO_SESSION_REDIS_EXPIRATION_ANONYMOUS
- AWS_HOST
- AWS_REGION
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_BUCKETNAME
networks:
- internal
postgres:
build:
context: ./
dockerfile: ./postgres/Dockerfile
args:
- POSTGRES_TAG
restart: unless-stopped
tty: true
volumes:
- pg-data:${PGDATA}
- ./postgres/entrypoint.sh:/docker-entrypoint-initdb.d/entrypoint.sh
environment:
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
- PGDATA
- DB_USER
- DB_TEMPLATE
- UNACCENT_TEMPLATE
- PGADMING_DB_NAME
- PGADMING_DB_USER
- PGADMIN_DB_PASSWORD
networks:
- internal
redis:
image: eqalpha/keydb:${KEYDB_TAG}
platform: linux/amd64
ports:
- ${KEYDB_PORT}:${KEYDB_PORT}
restart: unless-stopped
volumes:
- redis-data:${KEYDB_DATA}
networks:
- internal
s3:
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}"
volumes:
- s3-data:${MINIO_DATA}
ports:
- ${MINIO_API_PORT}:${MINIO_API_PORT}
- ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}
networks:
- internal
nginx:
image: nginx:${NGINX_TAG}
depends_on:
- odoo
restart: unless-stopped
tty: true
expose:
- 80/tcp
volumes:
- ./nginx/nginx.conf:${NGINX_CONF}
- ./nginx/default.conf:${NGINX_DEFAULT_CONF}
environment:
- VIRTUAL_HOST
- LETSENCRYPT_HOST
- LETSENCRYPT_EMAIL
- CORS_ALLOWED_DOMAIN
networks:
- internal
nginx-proxy:
image: nginxproxy/nginx-proxy:${NGINX_PROXY_TAG}
depends_on:
- nginx
restart: unless-stopped
tty: true
volumes:
- ./nginx-proxy/nginx.conf:${NGINX_CONF}
- ./nginx-proxy/cors.conf:${NGINX_PROXY_CORS_CONF}
- certs:${NGINX_CERTS}:ro
- vhost:${NGINX_VHOST}
- html:${NGINX_HTML}
- ${DOCKER_SOCK}:${TEMP_DOCKER_SOCK}:ro
environment:
- TRUST_DOWNSTREAM_PROXY
- CORS_ALLOWED_DOMAIN
networks:
- internal
volumes:
odoo-data:
pg-data:
redis-data:
s3-data:
certs:
vhost:
html:
networks:
internal:
driver: bridge

View File

@@ -1,49 +0,0 @@
services:
odoo:
restart: 'no'
ports:
- 8069:8069
- 8070:8070
- 8071:8071
- 8072:8072
postgres:
restart: 'no'
ports:
- 5432:5432
nginx:
restart: 'no'
nginx-proxy:
restart: 'no'
ports:
- 80:80
redis:
image: eqalpha/keydb:${KEYDB_TAG}
platform: linux/amd64
ports:
- ${KEYDB_PORT}:${KEYDB_PORT}
restart: unless-stopped
volumes:
- redis-data:${KEYDB_DATA}
networks:
- internal
s3:
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}"
volumes:
- s3-data:${MINIO_DATA}
ports:
- ${MINIO_API_PORT}:${MINIO_API_PORT}
- ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}
networks:
- internal

View File

@@ -17,22 +17,6 @@ services:
- 80:80
- 443:443
letsencrypt:
image: nginxproxy/acme-companion:${ACME_COMPANION_TAG}
depends_on:
- nginx-proxy
restart: unless-stopped
volumes_from:
- nginx-proxy:rw
volumes:
- certs:${NGINX_CERTS}:rw
- acme:${NGINX_ACME}
- ${DOCKER_SOCK}:${DOCKER_SOCK}:ro
environment:
- DEFAULT_EMAIL
networks:
- internal
volumes:
acme:
certs:

View File

@@ -1,45 +0,0 @@
services:
pgadmin:
build:
context: ./
dockerfile: ./pgadmin/Dockerfile
args:
- PGADMIN_TAG
depends_on:
- postgres
restart: 'no'
expose:
- 80
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
volumes:
pgadmin-data:

View File

@@ -51,6 +51,7 @@ services:
- AWS_BUCKETNAME
networks:
- internal
profiles: [$ODOO_PROFILES]
postgres:
build:
@@ -76,6 +77,7 @@ services:
- PGADMIN_DB_PASSWORD
networks:
- internal
profiles: [$POSTGRES_PROFILES]
nginx:
image: nginx:${NGINX_TAG}
@@ -95,6 +97,7 @@ services:
- CORS_ALLOWED_DOMAIN
networks:
- internal
profiles: [$NGINX_PROFILES]
nginx-proxy:
image: nginxproxy/nginx-proxy:${NGINX_PROXY_TAG}
@@ -114,6 +117,7 @@ services:
- CORS_ALLOWED_DOMAIN
networks:
- internal
profiles: [$NGINX_PROXY_PROFILES]
redis:
image: eqalpha/keydb:${KEYDB_TAG}
@@ -125,7 +129,7 @@ services:
- redis-data:${KEYDB_DATA}
networks:
- internal
profiles: ["dev"]
profiles: [$KEYDB_PROFILES]
s3:
image: minio/minio:${MINIO_TAG}
@@ -143,16 +147,78 @@ services:
- ${MINIO_CONSOLE_PORT}:${MINIO_CONSOLE_PORT}
networks:
- internal
profiles: ["dev"]
profiles: [$MINIO_PROFILES]
letsencrypt:
image: nginxproxy/acme-companion:${ACME_COMPANION_TAG}
depends_on:
- nginx-proxy
restart: unless-stopped
volumes_from:
- nginx-proxy:rw
volumes:
- certs:${NGINX_CERTS}:rw
- acme:${NGINX_ACME}
- ${DOCKER_SOCK}:${DOCKER_SOCK}:ro
environment:
- DEFAULT_EMAIL
networks:
- internal
profiles: [$ACME_COMPANION_PROFILES]
pgadmin:
build:
context: ./
dockerfile: ./pgadmin/Dockerfile
args:
- PGADMIN_TAG
depends_on:
- postgres
restart: 'no'
expose:
- 80
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]
volumes:
odoo-data:
pg-data:
redis-data:
s3-data:
pgadmin-data:
html:
vhost:
certs:
acme:
networks:
internal: