112 lines
3.1 KiB
YAML
112 lines
3.1 KiB
YAML
# Ensaio descartável de rollback de imagem.
|
|
#
|
|
# Projeto, rede e volumes são exclusivos deste ensaio. Não há `build:` de
|
|
# propósito: a imagem vem só de ADAPTER_IMAGE, com tag imutável do commit.
|
|
# Nunca use a tag `adaptador-planilhas:local` aqui — ela alimenta o compose
|
|
# principal. Postgres e Redis não publicam porta.
|
|
|
|
name: adaptador-rollback-ensaio
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_USER: adaptador
|
|
POSTGRES_PASSWORD: rollback_ensaio_local
|
|
POSTGRES_DB: adaptador_rollback
|
|
volumes:
|
|
- ensaio-postgres:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U adaptador -d adaptador_rollback"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
networks: [ensaio]
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
command: ["redis-server", "--save", "", "--appendonly", "no"]
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 5s
|
|
timeout: 3s
|
|
retries: 20
|
|
networks: [ensaio]
|
|
|
|
storage-init:
|
|
image: ${ADAPTER_IMAGE:?defina ADAPTER_IMAGE com a tag do commit}
|
|
command: ["prepare-storage"]
|
|
user: "0:0"
|
|
network_mode: none
|
|
cap_drop: [ALL]
|
|
cap_add: [CHOWN, FOWNER, DAC_OVERRIDE, DAC_READ_SEARCH, SETUID, SETGID]
|
|
security_opt: ["no-new-privileges:true"]
|
|
healthcheck:
|
|
disable: true
|
|
restart: "no"
|
|
volumes:
|
|
- ensaio-storage:/app/.data
|
|
|
|
web:
|
|
image: ${ADAPTER_IMAGE:?defina ADAPTER_IMAGE com a tag do commit}
|
|
command: ["web"]
|
|
environment: &app-env
|
|
ADAPTER_ENV: development
|
|
ADAPTER_NAMESPACE: adaptador-rollback-ensaio
|
|
ADAPTER_JOB_MODE: worker
|
|
ADAPTER_APPLY_IDENTITY_SHIM: "1"
|
|
ADAPTER_DEV_AUTH: "1"
|
|
ADAPTER_DEV_AUTH_SECRET: segredo-apenas-ensaio
|
|
DATABASE_URL: postgres://adaptador:rollback_ensaio_local@postgres:5432/adaptador_rollback
|
|
REDIS_URL: redis://redis:6379
|
|
SPREADSHEET_TEMP_TTL_SECONDS: "3600"
|
|
ELO_PRO_APP_URL: http://127.0.0.1:3310
|
|
PORT: "3000"
|
|
HOSTNAME: 0.0.0.0
|
|
ports:
|
|
- "127.0.0.1:3310:3000"
|
|
volumes:
|
|
- ensaio-storage:/app/.data
|
|
depends_on:
|
|
storage-init:
|
|
condition: service_completed_successfully
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
networks: [ensaio]
|
|
|
|
worker:
|
|
image: ${ADAPTER_IMAGE:?defina ADAPTER_IMAGE com a tag do commit}
|
|
command: ["worker"]
|
|
environment: *app-env
|
|
volumes:
|
|
- ensaio-storage:/app/.data
|
|
healthcheck:
|
|
test: ["CMD", "/app/docker/entrypoint.sh", "worker-health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 15s
|
|
retries: 3
|
|
stop_grace_period: 30s
|
|
depends_on:
|
|
storage-init:
|
|
condition: service_completed_successfully
|
|
web:
|
|
condition: service_started
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
networks: [ensaio]
|
|
|
|
networks:
|
|
ensaio:
|
|
name: adaptador-rollback-ensaio
|
|
|
|
volumes:
|
|
ensaio-postgres:
|
|
name: adaptador-rollback-ensaio-postgres
|
|
ensaio-storage:
|
|
name: adaptador-rollback-ensaio-storage
|