ex_trainer/docker-compose.yml
renovate-bot c3c5f04789
All checks were successful
continuous-integration/drone/pr Build is passing
chore(deps): update postgres docker tag to v17.4
2025-03-06 22:03:45 +00:00

93 lines
2.3 KiB
YAML

---
services:
db:
image: 'postgres:17.4-alpine'
hostname: &db_host db
init: true
environment:
POSTGRES_USER: &db_user postgres
POSTGRES_PASSWORD: &db_pass postgres
POSTGRES_DB: postgres
volumes:
- './priv/docker/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql'
- 'db_data:/var/lib/postgresql/data'
restart: unless-stopped
app:
image: 'joaodubas/ex_trainer:${EX_TRAINER_TAG:-dev}'
build:
target: builder
context: .
args:
BUILD_MIX_ENV: dev
pull_policy: never
hostname: &app_host ex_trainer
depends_on:
- db
init: true
develop:
watch:
- path: ./
ignore:
- ./build/
- ./deps/
target: /opt/app
action: sync
- path: ./config/
target: /opt/app
action: sync+restart
- path: ./lib/wabanex/application.ex
target: /opt/app
action: sync+restart
- path: ./mix.exs
target: /opt/app
action: sync+restart
- path: ./mix.lock
action: rebuild
environment:
DNS_CLUSTER_QUERY: *app_host
POSTGRES_HOST: *db_host
POSTGRES_USER: *db_user
POSTGRES_PASS: *db_pass
POSTGRES_NAME: wabanex_dev
working_dir: /opt/app
restart: unless-stopped
scale: 3
entrypoint: ./priv/docker/service/docker-entrypoint.sh
command: local-cookie
test:
image: 'joaodubas/ex_trainer:test'
build:
target: builder
context: .
args:
BUILD_MIX_ENV: test
pull_policy: never
profiles:
- test
hostname: ex_trainer_test
depends_on:
- db
init: true
volumes:
- './mix.exs:/opt/app/mix.exs:ro'
- './mix.lock:/opt/app/mix.lock:ro'
- './students.csv:/opt/app/students.csv:ro'
- './config:/opt/app/config'
- './cover:/opt/app/cover'
- './lib:/opt/app/lib'
- './priv:/opt/app/priv'
- './report:/opt/app/report'
- './test:/opt/app/test'
environment:
POSTGRES_HOST: *db_host
POSTGRES_USER: *db_user
POSTGRES_PASS: *db_pass
POSTGRES_NAME: wabanex_test
working_dir: /opt/app
restart: never
entrypoint: mix test
command: --trace --cover --slowest 10
volumes:
db_data: {}