mirror of
https://github.com/suitenumerique/messages.git
synced 2026-09-26 19:54:54 +02:00
226 lines
5.1 KiB
YAML
226 lines
5.1 KiB
YAML
name: st-messages
|
|
|
|
services:
|
|
postgresql:
|
|
image: postgres:16.6
|
|
ports:
|
|
- "6434:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready"]
|
|
interval: 1s
|
|
timeout: 2s
|
|
retries: 300
|
|
env_file:
|
|
- env.d/development/postgresql
|
|
|
|
redis:
|
|
image: redis:5
|
|
|
|
mailcatcher:
|
|
image: sj26/mailcatcher:latest
|
|
ports:
|
|
- "1081:1080"
|
|
|
|
# minio:
|
|
# user: ${DOCKER_USER:-1000}
|
|
# image: minio/minio
|
|
# environment:
|
|
# - MINIO_ROOT_USER=st-messages
|
|
# - MINIO_ROOT_PASSWORD=password
|
|
# ports:
|
|
# - "9000:9000"
|
|
# - "9001:9001"
|
|
# healthcheck:
|
|
# test: ["CMD", "mc", "ready", "local"]
|
|
# interval: 1s
|
|
# timeout: 20s
|
|
# retries: 300
|
|
# entrypoint: ""
|
|
# command: minio server --console-address :9001 /data
|
|
# volumes:
|
|
# - ./data/media:/data
|
|
|
|
# createbuckets:
|
|
# image: minio/mc
|
|
# depends_on:
|
|
# minio:
|
|
# condition: service_healthy
|
|
# restart: true
|
|
# entrypoint: >
|
|
# sh -c "
|
|
# /usr/bin/mc alias set st-messages http://minio:9000 st-messages password && \
|
|
# /usr/bin/mc mb st-messages/st-messages-media-storage && \
|
|
# /usr/bin/mc version enable st-messages/st-messages-media-storage && \
|
|
# exit 0;"
|
|
|
|
app-dev:
|
|
build:
|
|
context: .
|
|
target: backend-development
|
|
args:
|
|
DOCKER_USER: ${DOCKER_USER:-1000}
|
|
user: ${DOCKER_USER:-1000}
|
|
image: st-messages:backend-development
|
|
environment:
|
|
- PYLINTHOME=/app/.pylint.d
|
|
- DJANGO_CONFIGURATION=Development
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/backend
|
|
- env.d/development/postgresql
|
|
ports:
|
|
- "8071:8000"
|
|
volumes:
|
|
- ./src/backend:/app
|
|
- ./data/static:/data/static
|
|
depends_on:
|
|
postgresql:
|
|
condition: service_healthy
|
|
restart: true
|
|
mailcatcher:
|
|
condition: service_started
|
|
redis:
|
|
condition: service_started
|
|
# createbuckets:
|
|
# condition: service_started
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
target: backend-production
|
|
args:
|
|
DOCKER_USER: ${DOCKER_USER:-1000}
|
|
user: ${DOCKER_USER:-1000}
|
|
image: st-messages:backend-production
|
|
environment:
|
|
- DJANGO_CONFIGURATION=Production
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/backend
|
|
- env.d/development/postgresql
|
|
depends_on:
|
|
postgresql:
|
|
condition: service_healthy
|
|
restart: true
|
|
redis:
|
|
condition: service_started
|
|
#minio:
|
|
# condition: service_started
|
|
|
|
nginx:
|
|
image: nginx:1.25
|
|
ports:
|
|
- "8083:8083"
|
|
volumes:
|
|
- ./docker/files/development/etc/nginx/conf.d:/etc/nginx/conf.d:ro
|
|
depends_on:
|
|
- keycloak
|
|
- app-dev
|
|
- mta-in
|
|
|
|
frontend-dev:
|
|
user: "${DOCKER_USER:-1000}"
|
|
build:
|
|
context: .
|
|
dockerfile: ./src/frontend/Dockerfile
|
|
target: st-messages-dev
|
|
args:
|
|
API_ORIGIN: "http://localhost:8071"
|
|
S3_DOMAIN_REPLACE: "http://localhost:9000"
|
|
image: st-messages:frontend-development
|
|
volumes:
|
|
- ./src/frontend/:/home/frontend/
|
|
ports:
|
|
- "3000:3000"
|
|
|
|
frontend-install:
|
|
profiles:
|
|
- frontend-install
|
|
build:
|
|
dockerfile: ./src/frontend/Dockerfile.install
|
|
volumes:
|
|
- ./src/frontend/:/home/frontend/
|
|
|
|
frontend:
|
|
user: "${DOCKER_USER:-1000}"
|
|
build:
|
|
context: .
|
|
dockerfile: ./src/frontend/Dockerfile
|
|
target: frontend-production
|
|
args:
|
|
API_ORIGIN: "http://localhost:8071"
|
|
S3_DOMAIN_REPLACE: "http://localhost:9000"
|
|
image: st-messages:frontend-production
|
|
ports:
|
|
- "3001:3000"
|
|
|
|
crowdin:
|
|
image: crowdin/cli:3.16.0
|
|
volumes:
|
|
- ".:/app"
|
|
env_file:
|
|
- env.d/development/crowdin
|
|
user: "${DOCKER_USER:-1000}"
|
|
working_dir: /app
|
|
|
|
node:
|
|
image: node:22
|
|
user: "${DOCKER_USER:-1000}"
|
|
environment:
|
|
HOME: /tmp
|
|
volumes:
|
|
- ".:/app"
|
|
|
|
mta-in:
|
|
image: mta-in:latest
|
|
build:
|
|
context: src/mta-in/postfix
|
|
dockerfile: Dockerfile
|
|
env_file:
|
|
- env.d/development/common
|
|
- env.d/development/mta-in
|
|
ports:
|
|
- "25:25"
|
|
depends_on:
|
|
- app-dev
|
|
|
|
kc_postgresql:
|
|
image: postgres:16.6
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready"]
|
|
interval: 1s
|
|
timeout: 2s
|
|
retries: 300
|
|
ports:
|
|
- "6433:5432"
|
|
env_file:
|
|
- env.d/development/kc_postgresql
|
|
|
|
keycloak:
|
|
image: quay.io/keycloak/keycloak:20.0.1
|
|
volumes:
|
|
- ./docker/auth/realm.json:/opt/keycloak/data/import/realm.json
|
|
command:
|
|
- start-dev
|
|
- --features=preview
|
|
- --import-realm
|
|
- --proxy=edge
|
|
- --hostname-url=http://localhost:8083
|
|
- --hostname-admin-url=http://localhost:8083/
|
|
- --hostname-strict=false
|
|
- --hostname-strict-https=false
|
|
environment:
|
|
KEYCLOAK_ADMIN: admin
|
|
KEYCLOAK_ADMIN_PASSWORD: admin
|
|
KC_DB: postgres
|
|
KC_DB_URL_HOST: kc_postgresql
|
|
KC_DB_URL_DATABASE: keycloak
|
|
KC_DB_PASSWORD: pass
|
|
KC_DB_USERNAME: user
|
|
KC_DB_SCHEMA: public
|
|
PROXY_ADDRESS_FORWARDING: "true"
|
|
ports:
|
|
- "8080:8080"
|
|
depends_on:
|
|
- kc_postgresql
|