Ctrl K
ComunidadGuías…

docker-compose.ci.yml

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
version: '3.8'

services:
  mariadb:
    image: mariadb:10.5
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-secret}
      MYSQL_DATABASE: ${MYSQL_DATABASE:-foodsoft}
      MYSQL_USER: ${MYSQL_USER:-foodsoft}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-secret}
    networks:
      - internal

  redis:
    image: redis:6.2-alpine
    networks:
      - internal

  foodsoft:
    image: ${IMAGE}
    environment:
      SECRET_KEY_BASE: ${SECRET_KEY_BASE:-verysecret}
      MYSQL_USER: ${MYSQL_USER:-foodsoft}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-secret}
      MYSQL_DATABASE: ${MYSQL_DATABASE:-foodsoft}
      DATABASE_URL: mysql2://${MYSQL_USER:-foodsoft}:${MYSQL_PASSWORD:-secret}@mariadb/${MYSQL_DATABASE:-foodsoft}?encoding=utf8mb4
      REDIS_URL: ${REDIS_URL:-redis://redis:6379}
      RAILS_FORCE_SSL: ${RAILS_FORCE_SSL:-false}
      DOMAIN: ${DOMAIN}
    deploy:
      replicas: 1
      labels:
        - "traefik.enable=true"
        - "traefik.http.routers.foodsoft-${REFERENCE}.rule=Host(`${DOMAIN}`)"
        - "traefik.http.routers.foodsoft-${REFERENCE}.entrypoints=web-secure"
        - "traefik.http.routers.foodsoft-${REFERENCE}.tls.certresolver=production"
        - "traefik.http.services.foodsoft-${REFERENCE}.loadbalancer.server.port=3000"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      timeout: 10s
      retries: 3
      interval: 30s
      start_period: 60s
    networks:
      - proxy
      - internal

networks:
  internal:
  proxy:
    external: true