version: "3.8" services: mariadb_webapp_dev: image: docker.io/bitnami/mariadb:11.1 container_name: ${DEV_COMPOSE_PREFIX:-dev}-mariadb hostname: ${DEV_DB_HOST:-mariadb-webapp-dev} environment: MARIADB_USER: ${MARIADB_USER} MARIADB_DATABASE: ${MARIADB_DATABASE} MARIADB_PASSWORD: ${MARIADB_PASSWORD} MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} networks: - dev_backend volumes: - mindboost_mariadb_data_dev:/var/lib/mysql laravel-redis-dev: image: redis:alpine container_name: ${DEV_COMPOSE_PREFIX:-dev}-redis hostname: ${DEV_REDIS_HOST:-laravel-redis-dev} command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD} networks: - dev_backend restart: unless-stopped volumes: - ./data/redis-dev:/data laravel_backend_dev: image: ${BACKEND_IMAGE} container_name: ${DEV_COMPOSE_PREFIX:-dev}-backend environment: APP_ENV: ${APP_ENV:-production} APP_NAME: ${APP_NAME:-Mindboost Backend Dev} APP_URL: https://${DEV_BACKEND_DOMAIN} FRONTEND_URL: https://${DEV_FRONTEND_DOMAIN} DB_CONNECTION: mysql DB_HOST: ${DEV_DB_HOST:-mariadb-webapp-dev} DB_PORT: ${DB_PORT:-3306} DB_DATABASE: ${MARIADB_DATABASE} DB_USERNAME: ${MARIADB_USER} DB_PASSWORD: ${MARIADB_PASSWORD} REDIS_HOST: ${DEV_REDIS_HOST:-laravel-redis-dev} REDIS_PASSWORD: ${REDIS_PASSWORD} REDIS_PORT: ${REDIS_PORT:-6379} CACHE_DRIVER: redis QUEUE_CONNECTION: redis SESSION_DRIVER: redis volumes: - ${BACKEND_CODE_PATH:-./apps/backend/src}:/app - ${BACKEND_PUBLIC_PATH:-./apps/backend/src/public}:/var/www/public - ${BACKEND_ENV_FILE:-./env/development/.env.backend}:/var/www/.env - ./logs/backend-dev:/var/www/storage/logs depends_on: - mariadb_webapp_dev - laravel-redis-dev networks: - dev_backend laravel-nginx-dev: image: nginx:alpine container_name: ${DEV_COMPOSE_PREFIX:-dev}-nginx volumes: - ./nginx:/etc/nginx/conf.d:ro - ${BACKEND_PUBLIC_PATH:-./apps/backend/src/public}:/var/www/public:ro depends_on: - laravel_backend_dev labels: - "traefik.enable=true" - "traefik.http.routers.dev_backend_http.entrypoints=web" - "traefik.http.routers.dev_backend_http.rule=Host(`${DEV_BACKEND_DOMAIN}`)" - "traefik.http.routers.dev_backend_http.middlewares=traefik-https-redirect" - "traefik.http.routers.dev_backend_https.entrypoints=websecure" - "traefik.http.routers.dev_backend_https.rule=Host(`${DEV_BACKEND_DOMAIN}`)" - "traefik.http.routers.dev_backend_https.tls=true" - "traefik.http.routers.dev_backend_https.tls.certresolver=${TRAEFIK_CERT_RESOLVER}" - "traefik.http.routers.dev_backend_https.service=dev_backend_service" - "traefik.http.services.dev_backend_service.loadbalancer.server.port=80" - "traefik.docker.network=${TRAEFIK_NETWORK}" networks: - dev_backend - proxy nuxt_frontend_dev: image: ${NUXT_IMAGE} container_name: ${DEV_COMPOSE_PREFIX:-dev}-frontend environment: VUE_APP_BACKEND_HOST_ADDRESS: https://${DEV_BACKEND_DOMAIN} NUXT_PUBLIC_BACKEND_URL: https://${DEV_BACKEND_DOMAIN} networks: - dev_backend - proxy depends_on: - laravel_backend_dev labels: - "traefik.enable=true" - "traefik.http.routers.dev_frontend_http.entrypoints=web" - "traefik.http.routers.dev_frontend_http.rule=Host(`${DEV_FRONTEND_DOMAIN}`)" - "traefik.http.routers.dev_frontend_http.middlewares=traefik-https-redirect" - "traefik.http.routers.dev_frontend_https.entrypoints=websecure" - "traefik.http.routers.dev_frontend_https.rule=Host(`${DEV_FRONTEND_DOMAIN}`)" - "traefik.http.routers.dev_frontend_https.tls=true" - "traefik.http.routers.dev_frontend_https.tls.certresolver=${TRAEFIK_CERT_RESOLVER}" - "traefik.http.services.dev_frontend_https.loadbalancer.server.port=${VUE_INTERNAL_PORT}" - "traefik.docker.network=${TRAEFIK_NETWORK}" networks: dev_backend: driver: bridge proxy: external: true volumes: mindboost_mariadb_data_dev: