Files
solidtime/docker-compose.yml
2024-03-21 13:53:29 +01:00

135 lines
5.2 KiB
YAML

services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.3
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.3/app
labels:
- "traefik.enable=true"
- "traefik.docker.network=${NETWORK_NAME}"
- "traefik.http.routers.solidtime.rule=Host(`${NGINX_HOST_NAME}`)"
- "traefik.http.routers.solidtime.entrypoints=web"
- "traefik.http.services.solidtime.loadbalancer.server.port=80"
- "traefik.http.routers.solidtime.service=solidtime"
- "traefik.http.routers.solidtime-https.rule=Host(`${NGINX_HOST_NAME}`)"
- "traefik.http.routers.solidtime-https.entrypoints=websecure"
- "traefik.http.routers.solidtime-https.tls=true"
# vite
- "traefik.http.services.solidtime-vite.loadbalancer.server.port=5173"
# http
- "traefik.http.routers.solidtime-vite.rule=Host(`${VITE_HOST_NAME}`)"
- "traefik.http.routers.solidtime-vite.service=solidtime-vite"
- "traefik.http.routers.solidtime-vite.entrypoints=web"
extra_hosts:
- 'host.docker.internal:host-gateway'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
IGNITION_LOCAL_SITES_PATH: '${PWD}'
VITE_HOST_NAME: '${VITE_HOST_NAME}'
volumes:
- '.:/var/www/html'
networks:
- sail
- reverse-proxy
depends_on:
- pgsql
pgsql:
image: 'postgres:15'
ports:
- '${FORWARD_DB_PORT:-5432}:5432'
environment:
PGPASSWORD: '${DB_PASSWORD:-secret}'
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_USER: '${DB_USERNAME}'
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
volumes:
- 'sail-pgsql:/var/lib/postgresql/data'
- './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql'
networks:
- sail
healthcheck:
test:
- CMD
- pg_isready
- '-q'
- '-d'
- '${DB_DATABASE}'
- '-U'
- '${DB_USERNAME}'
retries: 3
timeout: 5s
pgsql_test:
image: 'postgres:15'
environment:
PGPASSWORD: '${DB_PASSWORD:-secret}'
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_USER: '${DB_USERNAME}'
POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}'
volumes:
- 'sail-pgsql-test:/var/lib/postgresql/data'
- './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql'
networks:
- sail
healthcheck:
test:
- CMD
- pg_isready
- '-q'
- '-d'
- '${DB_DATABASE}'
- '-U'
- '${DB_USERNAME}'
retries: 3
timeout: 5s
mailpit:
image: 'axllent/mailpit:latest'
labels:
- "traefik.enable=true"
- "traefik.docker.network=${NETWORK_NAME}"
- "traefik.http.routers.solidtime-mailpit.rule=Host(`mail.${NGINX_HOST_NAME}`)"
- "traefik.http.routers.solidtime-mailpit.entrypoints=web"
- "traefik.http.services.solidtime-mailpit.loadbalancer.server.port=8025"
- "traefik.http.routers.solidtime-mailpit-https.rule=Host(`mail.${NGINX_HOST_NAME}`)"
- "traefik.http.routers.solidtime-mailpit-https.entrypoints=websecure"
- "traefik.http.routers.solidtime-mailpit-https.tls=true"
networks:
- sail
- reverse-proxy
playwright:
image: mcr.microsoft.com/playwright:v1.42.1-jammy
command: ['npx', 'playwright', 'test', '--ui-port=8080', '--ui-host=0.0.0.0']
working_dir: /src
extra_hosts:
- "${NGINX_HOST_NAME}:${REVERSE_PROXY_IP:-10.100.100.10}"
- "${VITE_HOST_NAME}:${REVERSE_PROXY_IP:-10.100.100.10}"
labels:
- "traefik.enable=true"
- "traefik.docker.network=${NETWORK_NAME}"
- "traefik.http.routers.playwright.rule=Host(`playwright.${NGINX_HOST_NAME}`)"
- "traefik.http.routers.playwright.entrypoints=web"
- "traefik.http.services.playwright.loadbalancer.server.port=8080"
- "traefik.http.routers.playwright-https.rule=Host(`playwright.${NGINX_HOST_NAME}`)"
- "traefik.http.routers.playwright-https.entrypoints=websecure"
- "traefik.http.routers.playwright-https.tls=true"
networks:
- sail
- reverse-proxy
volumes:
- '.:/src'
networks:
reverse-proxy:
name: "${NETWORK_NAME}"
external: true
sail:
driver: bridge
volumes:
sail-pgsql:
driver: local
sail-pgsql-test:
driver: local