Skip to content

Commit

Permalink
feat: proposal of docker-compose management dev/test/prod
Browse files Browse the repository at this point in the history
dev: source .env && source .env.local && source .env.dev && source .env.dev.local && export APP_ENV=dev && docker compose -f docker-env\docker-compose-base.yml -f docker-env\docker-compose-dev.yml up
test: source .env && source .env.local && source .env.test && source .env.test.local && export APP_ENV=test && docker compose -f docker-env\docker-compose-base.yml -f docker-env\docker-compose-test.yml up
prod: source .env && source .env.local && source .env.prod && source .env.prod.local && export APP_ENV=prod && docker compose -f docker-env\docker-compose-base.yml up app (only app)

all configurations files .env, .env.local, .env.dev|test|prod, .env.dev|test|prod.local are systematically mounted as volumes in all configuration. Their use is totallement conditionned by APP_ENV value in the .env.local file but is override if we export it in environment variable
  • Loading branch information
rv2931 committed Feb 29, 2024
1 parent 61cfcdc commit b81550a
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 0 deletions.
54 changes: 54 additions & 0 deletions docker-env/docker-compose-base.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
version: "3.7"
services:
postgres:
container_name: ${POSTGRES_HOSTNAME:-postgres_bloom}
hostname: ${POSTGRES_HOSTNAME:-postgres_bloom}
environment:
POSTGRES_DB: ${POSTGRES_DB:-bloom_db}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-bloom}
POSTGRES_USER: ${POSTGRES_USER:-boom_user}
image: ${POSTGIS_IMAGE:-postgis/postgis:14-3.3-alpine}
ports:
- ${POSTGRES_PORT:-5432}:5432
networks:
- bloom_net
restart: unless-stopped

app:
container_name: app_bloom
hostname: app_bloom
build:
context: ..
dockerfile: docker-env/Dockerfile
args:
CHROME_VERSION: "112.0.5615.165-1"
APP_DIR: ${APP_DIR:-/source_code}
FROM_IMAGE: ${FROM_IMAGE:-python:3.10-slim-bullseye}
APP_ENV: ${APP_ENV}
image: dataforgood/12_bloom


environment:
POSTGRES_USER: ${POSTGRES_USER:-boom_user}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-bloom}
POSTGRES_HOSTNAME: postgres
POSTGRES_DB: ${POSTGRES_DB:-bloom_db}
POSTGRES_PORT: ${POSTGRES_PORT:-5432}
SPIRE_TOKEN_FILE: /run/secrets/spire_token
volumes:
- ../data:${APP_DIR:-/source_code}/data
- ../.env:${APP_DIR:-/source_code}/.env
- ../.env.local:${APP_DIR:-/source_code}/.env.local
- ../.env.dev:${APP_DIR:-/source_code}/.env.dev
- ../.env.test:${APP_DIR:-/source_code}/.env.test
- ../.env.prod:${APP_DIR:-/source_code}/.env.prod
- ../.env.dev.local:${APP_DIR:-/source_code}/.env.dev.local
- ../.env.test.local:${APP_DIR:-/source_code}/.env.test.local
- ../.env.prod.local:${APP_DIR:-/source_code}/.env.prod.local
networks:
- bloom_net
restart: unless-stopped

networks:
bloom_net:
name: bloom_net
35 changes: 35 additions & 0 deletions docker-env/docker-compose-dev.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: "3.7"
services:
postgres:
container_name: ${POSTGRES_HOSTNAME:-postgres_bloom}-dev
ports:
- ${POSTGRES_PORT:-5432}:5432
pgadmin:
container_name: pgadmin_bloom-dev
image: dpage/pgadmin4
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-test}
PGADMIN_SERVER_JSON_FILE: /run/secrets/servers.json
ports:
- "${PGADMIN_PORT:-5080}:80"
networks:
- bloom_net
restart: unless-stopped

app:
container_name: app_bloom-dev
build:
args:
APP_ENV: dev
environment:
APP_ENV: dev
volumes:
- ..:/source_code/
networks:
- bloom_net
restart: unless-stopped

networks:
bloom_net:
name: bloom_net
24 changes: 24 additions & 0 deletions docker-env/docker-compose-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: "3.7"
services:
postgres:
container_name: ${POSTGRES_HOSTNAME:-postgres_bloom}-test
ports:
- ${POSTGRES_PORT:-5432}:5432
networks:
- bloom_net
restart: unless-stopped

app:
container_name: app_bloom-test
hostname: app_bloom
build:
context: ..
dockerfile: docker-env/Dockerfile
args:
APP_ENV: test
environment:
APP_ENV: test

networks:
bloom_net:
name: bloom_net

0 comments on commit b81550a

Please sign in to comment.