lernschiff/docker-compose.yml

134 lines
2.9 KiB
YAML

services:
app:
build:
context: .
dockerfile: docker/app/Dockerfile
args:
UID: 1000
GID: 1000
volumes:
- .:/var/www/html
- app_storage:/var/www/html/storage/app
- app_public:/var/www/html/storage/app/public
env_file: .env
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks: [lernschiff_net]
nginx:
build:
context: ./docker/nginx
dockerfile: Dockerfile
ports:
- "80:80"
volumes:
- .:/var/www/html:ro
- app_public:/var/www/html/storage/app/public:ro
depends_on: [app]
networks: [lernschiff_net]
queue:
build:
context: .
dockerfile: docker/app/Dockerfile
args:
UID: 1000
GID: 1000
command: php artisan queue:work --sleep=3 --tries=3
volumes:
- .:/var/www/html
- app_storage:/var/www/html/storage/app
- app_public:/var/www/html/storage/app/public
env_file: .env
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks: [lernschiff_net]
scheduler:
build:
context: .
dockerfile: docker/app/Dockerfile
args:
UID: 1000
GID: 1000
command: sh -c "while true; do php artisan schedule:run --verbose --no-interaction; sleep 60; done"
volumes:
- .:/var/www/html
- app_storage:/var/www/html/storage/app
- app_public:/var/www/html/storage/app/public
env_file: .env
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
networks: [lernschiff_net]
reverb:
build:
context: .
dockerfile: docker/app/Dockerfile
args:
UID: 1000
GID: 1000
command: php artisan reverb:start --host=0.0.0.0 --port=8081
ports:
- "8080:8081"
volumes:
- .:/var/www/html
- app_storage:/var/www/html/storage/app
- app_public:/var/www/html/storage/app/public
env_file: .env
depends_on: [redis]
networks: [lernschiff_net]
mysql:
image: mysql:8
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_USER: ${DB_USERNAME}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 10
networks: [lernschiff_net]
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 10
networks: [lernschiff_net]
mailpit:
image: axllent/mailpit
ports:
- "8025:8025"
- "127.0.0.1:1025:1025"
networks: [lernschiff_net]
networks:
lernschiff_net:
driver: bridge
volumes:
mysql_data:
redis_data:
app_storage:
app_public: