Files
SAE-BUT2-docker/docker-compose.yml
T

136 lines
3.4 KiB
YAML

services:
mariadb:
image: mariadb:latest
container_name: app-mariadb
environment:
- DB_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
- DB_DATABASE=${DB_DATABASE}
ports:
- "3306:3306"
volumes:
- dbdata:/var/lib/mysql
restart: unless-stopped
php:
build:
context: ./docker/php
dockerfile: Dockerfile
args:
USER_ID: ${USER_ID:-1000}
GROUP_ID: ${GROUP_ID:-1000}
container_name: app-php
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./app-code:/var/www/app${DEV:+:delegated}
- ./docker/php/.env:/tmp/app.env:ro
- typesense-data:/typesense-data:ro
environment:
- GIT_TOKEN=${GIT_TOKEN}
- BACKEND_GIT_REPO=${BACKEND_GIT_REPO}
- BACKEND_GIT_BRANCH=${BACKEND_GIT_BRANCH}
- DEV=${DEV}
- DB_CONNECTION=${DB_CONNECTION}
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
depends_on:
- mariadb
- typesense
restart: unless-stopped
healthcheck:
test: [ "CMD-SHELL", "test -d /var/www/app/vendor && pidof php-fpm || exit 1" ]
interval: 5s
timeout: 3s
retries: 20
start_period: 120s
frontend:
build:
context: ./docker/frontend
dockerfile: Dockerfile
container_name: app-frontend
environment:
- GIT_TOKEN=${GIT_TOKEN}
- FRONTEND_GIT_REPO=${FRONTEND_GIT_REPO}
- FRONTEND_GIT_BRANCH=${FRONTEND_GIT_BRANCH}
- VITE_API_URL=${VITE_API_URL}
- VITE_BROADCASTER=${VITE_BROADCASTER}
- VITE_REVERB_KEY=${VITE_REVERB_KEY}
- VITE_REVERB_HOST=${VITE_REVERB_HOST}
- VITE_REVERB_PORT=${VITE_REVERB_PORT}
- VITE_FORCE_TLS=${VITE_FORCE_TLS}
- VITE_DISABLE_STATS=${VITE_DISABLE_STATS}
- VITE_ENCRYPTED=${VITE_ENCRYPTED}
- VITE_CLUSTER=${VITE_CLUSTER}
- VITE_ENABLED_TRANSPORTS=${VITE_ENABLED_TRANSPORTS}
volumes:
- ./app-code:/var/www/app${DEV:+:delegated}
depends_on:
php:
condition: service_healthy
restart: "no"
nginx:
image: nginx:alpine
container_name: app-nginx
volumes:
- ./app-code:/var/www/app${DEV:+:delegated}
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
depends_on:
php:
condition: service_healthy
frontend:
condition: service_completed_successfully
restart: unless-stopped
typesense:
build:
context: ./docker/typesense
dockerfile: Dockerfile
restart: unless-stopped
volumes:
- typesense-data:/data
backup:
build:
context: ./docker/backup
dockerfile: Dockerfile
container_name: app-backup
environment:
- DB_PASSWORD=${DB_PASSWORD}
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
volumes:
- ./backups:/backups
restart: unless-stopped
reverb:
build:
context: ./docker/reverb
dockerfile: Dockerfile
container_name: app-reverb
entrypoint: []
command: php artisan reverb:start --host=0.0.0.0 --port=8080
volumes:
- ./app-code:/var/www/app:delegated
ports:
- "8080:8080"
depends_on:
- php
- mariadb
restart: unless-stopped
volumes:
dbdata:
typesense-data:
networks:
default:
ipam:
config:
- subnet: 192.168.200.0/24