docker-compose.yml
Rama main · réplica de lectura del repositorio original.
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