ex_trainer/docker-compose.yml

81 lines
1.8 KiB
YAML
Raw Normal View History

2021-06-22 01:50:29 +00:00
---
services:
db:
image: 'postgres:16.4-alpine'
2021-06-22 01:50:29 +00:00
hostname: &db_host db
init: true
2021-06-22 01:50:29 +00:00
environment:
POSTGRES_USER: &db_user postgres
POSTGRES_PASSWORD: &db_pass postgres
POSTGRES_DB: &db_name postgres
volumes:
- './priv/docker/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql'
- 'db_data:/var/lib/postgresql/data'
restart: unless-stopped
app:
image: &app_image 'joaodubas/ex_trainer:${EX_TRAINER_TAG:-dev}'
build:
target: builder
context: .
args:
BUILD_MIX_ENV: dev
hostname: app
depends_on:
- db
init: true
2024-09-18 08:41:59 -03:00
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: &app_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: 2
entrypoint: sleep
command: infinity
db_setup:
image: *app_image
depends_on:
- db
profiles:
- setup
environment: *app_environment
restart: 'no'
command: |
mix ecto.setup \
&& MIX_ENV=test mix ecto.setup
db_migrate:
image: *app_image
depends_on:
- db
profiles:
- migrate
environment: *app_environment
restart: 'no'
command: |
mix ecto.migrate \
&& MIX_ENV=test mix.ecto.migrate
2021-06-22 01:50:29 +00:00
volumes:
db_data: {}