Ctrl K
ComunidadGuías…

docker-compose.development.yml

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

Archivo original ↗Preguntar a KiBot
volumes:
  redis-data: {}
  mysql-data: {}

services:
  web:
    build:
      context: ./
      dockerfile: docker/php/Dockerfile
      target: development
    environment:
      - APP_DOMAIN=localhost:12380
      - APP_PROTOCOL=http
      - SITE_SUBDOMAIN=stdparteitag
      - DB_HOST=mysql
      - DB_NAME=antragsgruen
      - DB_USER=${DB_USER:?Please set DB_USER in .env}
      - DB_PASSWORD=${DB_PASSWORD:?Please set DB_PASSWORD in .env}
      - REDIS_HOST=redis
      - MAILER_DISABLED=true
      - MAIL_FROM_EMAIL=noreply@example.org
      - MAIL_FROM_NAME=Motion Tools
      - RANDOM_SEED=${RANDOM_SEED}
      - RABBITMQ_HOST=rabbitmq
      - WEASYPRINT_PATH=/usr/bin/weasyprint
      - QPDF_PATH=/usr/bin/qpdf
      - IMAGE_MAGICK_PATH=/usr/bin/convert
      - OTEL_PHP_AUTOLOAD_ENABLED=true
      - OTEL_SERVICE_NAME=antragsgruen
      - OTEL_TRACES_EXPORTER=otlp
      - OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
      - OTEL_EXPORTER_OTLP_ENDPOINT=http://otlp-collector:4318
      - OTEL_PROPAGATORS=baggage,tracecontext
      - BACKGROUND_JOBS_NOTIFICATIONS=true
      - JS_ERROR_TRACKING=otel://js.error
    volumes:
      - "./:/var/www/antragsgruen"
      - "../antragsgruen-plugins/:/var/www/antragsgruen-plugins/:ro"

  nginx:
    image: nginx:latest
    ports:
      - "12380:80"
      - "12443:443"
    volumes:
      - "./:/var/www/antragsgruen:ro"
      - "./docker/nginx:/etc/nginx/conf.d"

  worker:
    build:
      context: ./
      dockerfile: docker/php/Dockerfile
      target: development
    command: /var/www/antragsgruen/yii background-job/run
    environment:
      - APP_DOMAIN=localhost:12380
      - APP_PROTOCOL=http
      - SITE_SUBDOMAIN=stdparteitag
      - DB_HOST=mysql
      - DB_NAME=antragsgruen
      - DB_USER=${DB_USER:?Please set DB_USER in .env}
      - DB_PASSWORD=${DB_PASSWORD:?Please set DB_PASSWORD in .env}
      - REDIS_HOST=redis
      - MAILER_DISABLED=true
      - RANDOM_SEED=${RANDOM_SEED}
      - BACKGROUND_JOBS_NOTIFICATIONS=true
    volumes:
      - "./:/var/www/antragsgruen"
      - "../antragsgruen-plugins/:/var/www/antragsgruen-plugins/:ro"
    depends_on:
      mysql:
        condition: service_healthy

  cron:
    build:
      context: ./
      dockerfile: docker/php/Dockerfile
      target: development
    command: sh -c "while true; do /var/www/antragsgruen/yii background-job/cleanup; sleep 86400; done"
    environment:
      - DB_HOST=mysql
      - DB_NAME=antragsgruen
      - DB_USER=${DB_USER:?Please set DB_USER in .env}
      - DB_PASSWORD=${DB_PASSWORD:?Please set DB_PASSWORD in .env}
    volumes:
      - "./:/var/www/antragsgruen"
      - "../antragsgruen-plugins/:/var/www/antragsgruen-plugins/:ro"
    depends_on:
      mysql:
        condition: service_healthy

  mysql:
    image: mariadb
    command: --max_allowed_packet=33554432
    ports:
      - "13306:3306"
    environment:
      MARIADB_ROOT_PASSWORD: ${DB_PASSWORD:?Please set DB_PASSWORD in .env}
      MARIADB_DATABASE: antragsgruen
    volumes:
      - "mysql-data:/var/lib/mysql"
    healthcheck:
      test: [ "CMD", "healthcheck.sh", "--connect", "--innodb_initialized" ]
      start_period: 3s
      interval: 3s
      timeout: 5s
      retries: 10

  redis:
    image: "redis:7"
    volumes:
      - 'redis-data:/data'

  rabbitmq:
    image: 'rabbitmq:3-management-alpine'
    environment:
      - RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS:?Please set RABBITMQ_DEFAULT_PASS in .env}
      - RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER:?Please set RABBITMQ_DEFAULT_USER in .env}
    ports:
      - "5672:5672"
      - "15672:15672"
    profiles:
      - live

  vite-watch:
    build:
      context: ./
      dockerfile: docker/pnpm/Dockerfile
    volumes:
      - "./:/var/www/antragsgruen"
    working_dir: /var/www/antragsgruen
    command: "pnpm run watch"
    profiles:
      - vite-watch

  pnpm-helper:
    build:
      context: ./
      dockerfile: docker/pnpm/Dockerfile
    volumes:
      - "./:/var/www/antragsgruen"
    working_dir: /var/www/antragsgruen
    command: sleep infinity
    profiles:
      - pnpm-helper

  otlp-collector:
    image: otel/opentelemetry-collector
    command: ["--config=/etc/otel/collector-config.yml"]
    ports:
      - "4317:4317"
      - "4318:4318"
      - "55679:55679"
    volumes:
      - "./docker/otel/collector-config.yml:/etc/otel/collector-config.yml:ro"