# 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