Ctrl K
ComunidadGuías…

docker-compose.yml

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

Archivo original ↗Preguntar a KiBot
services:
    artwork:
        image: artwork-app:latest
        build:
            context: .
            dockerfile: ./dockerfiles/release.Dockerfile
        depends_on:
            - db
        ports:
            - '${APP_PORT:-80}:80'
        env_file:
            - .env
        environment:
            RUN_INIT: 1
        extra_hosts:
            - "host.docker.internal:host-gateway"
        volumes:
            - './:/var/www/html'
    artwork_worker:
        image: artwork-app:latest
        container_name: artwork_worker
        restart: unless-stopped
        depends_on:
            -   artwork
        env_file:
            - .env
        environment:
            - APP_ENV=develop
        command: php artisan queue:work --queue=default,webhooks,workflows --sleep=3 --tries=3 --max-time=3600
        volumes:
            - ./.env:/var/www/html/.env:ro
            - ./storage:/var/www/html/storage
    artwork_reverb:
        image: artwork-app:latest
        container_name: artwork_reverb
        restart: unless-stopped
        depends_on:
            -   artwork
        ports:
            - "127.0.0.1:8080:8080"
        env_file:
            - .env
        environment:
            - APP_ENV=develop
        command: php artisan reverb:start --host=0.0.0.0 --port=8080
        volumes:
            - ./.env:/var/www/html/.env:ro
    db:
        image: 'mariadb:10.11'
        # DB-Port nur an die Loopback-Adresse des Hosts binden (DB_BIND_HOST, Default 127.0.0.1).
        # Die App-Container erreichen die DB über das Compose-Netzwerk, ein Host-Port ist nur für
        # lokale Werkzeuge nötig. Für Remote-Zugriff DB_BIND_HOST bewusst setzen (z. B. VPN-IP).
        ports:
            - '${DB_BIND_HOST:-127.0.0.1}:${FORWARD_DB_PORT:-3306}:3306'
        environment:
            # Root-Login nur lokal im DB-Container (kein Remote-Root über '%'); die App nutzt DB_USERNAME.
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
        volumes:
            - 'artwork-db-maria:/var/lib/mysql'
    meilisearch:
        image: 'getmeili/meilisearch:v1.20.0'
        environment:
            MEILI_MASTER_KEY: ${MEILISEARCH_KEY}
            MEILI_ENV: development
        # Meilisearch-Port ebenfalls nur an DB_BIND_HOST (Default 127.0.0.1) binden.
        ports:
            - '${DB_BIND_HOST:-127.0.0.1}:${FORWARD_MEILISEARCH_PORT:-7700}:7700'
        volumes:
            - 'artwork-meilisearch:/data'
    redis:
        image: 'redis:alpine'
        environment:
            - REDIS_PASSWORD=${REDIS_PASSWORD}
        volumes:
            - 'artwork-redis:/data'
volumes:
    artwork-db-maria:
        driver: local
    artwork-meilisearch:
        driver: local
    artwork-redis:
        driver: local
    artwork-files:
        driver: local