- Add captcha-web service with environment variables, dependencies, and volume bindings. - Replace Docker Hub image references with MDHub equivalents for all captcha-related services. - Update service environment configuration for production readiness, including APP_ENV additions. - Add captcha-swagger service for API documentation.
203 lines
5.1 KiB
YAML
203 lines
5.1 KiB
YAML
#version: '3.7'
|
|
services:
|
|
web:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: WEB_DEVELOP
|
|
depends_on:
|
|
- app
|
|
ports:
|
|
- ${DOCKER_WEB_PORT}:80
|
|
environment:
|
|
IS_GZIP: 0
|
|
FRONTEND_PORT: ${DOCKER_WEB_PORT}
|
|
BACKEND_HOST: app
|
|
BACKEND_PORT: 9000
|
|
# TRUSTED_PROXY_CIDR: 172.16.0.0/12
|
|
volumes:
|
|
- ./app/application/public:/usr/share/nginx/html
|
|
- ./app/application/storage/app/public:/usr/share/nginx/html/storage
|
|
app:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: APP_DEVELOP
|
|
depends_on:
|
|
- db
|
|
- app-redis
|
|
- captcha-web
|
|
volumes:
|
|
- ./app/application:/var/www/html
|
|
environment:
|
|
CONTAINER_ROLE: app
|
|
APP_ENV: local
|
|
|
|
queue:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: APP_DEVELOP
|
|
depends_on:
|
|
- db
|
|
- app
|
|
- app-redis
|
|
environment:
|
|
CONTAINER_ROLE: queue
|
|
volumes:
|
|
- ./app/application:/var/www/html
|
|
|
|
scheduler:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: APP_DEVELOP
|
|
depends_on:
|
|
- db
|
|
- app
|
|
- app-redis
|
|
environment:
|
|
CONTAINER_ROLE: scheduler
|
|
volumes:
|
|
- ./app/application:/var/www/html
|
|
|
|
app-redis:
|
|
image: redis:3.0-alpine # docker hub
|
|
volumes:
|
|
- ./redis/data:/data
|
|
|
|
captcha-web:
|
|
# image: korelf/service-captcha-web:0.9.0 # docker hub
|
|
image: docker.mdhub.kor-elf.net/kor-elf/service-captcha-web:0.9.0 # MDHub
|
|
# restart: always
|
|
depends_on:
|
|
- captcha-app
|
|
ports:
|
|
- ${DOCKER_CAPTCHA_PORT}:80
|
|
environment:
|
|
IS_GZIP: 0
|
|
FRONTEND_PORT: ${DOCKER_CAPTCHA_PORT}
|
|
BACKEND_HOST: captcha-app
|
|
BACKEND_PORT: 9000
|
|
TRUSTED_PROXY_CIDR: 172.16.0.0/12
|
|
# Enable swagger
|
|
ENABLE_API_DOCS: 1
|
|
SWAGGER_HOST: captcha-swagger
|
|
SWAGGER_PORT: 8080
|
|
volumes:
|
|
- ./captcha-app/app/storage/app/public:/usr/share/nginx/html/storage
|
|
|
|
captcha-app:
|
|
# image: korelf/service-captcha-app:0.9.0 # docker hub
|
|
image: docker.mdhub.kor-elf.net/kor-elf/service-captcha-app:0.9.0 # MDHub
|
|
# restart: always
|
|
depends_on:
|
|
- db
|
|
- captcha-redis
|
|
- captcha-reverb
|
|
env_file: captcha-app/.env
|
|
environment:
|
|
CONTAINER_ROLE: app
|
|
APP_ENV: production
|
|
volumes:
|
|
- ./captcha-app/app/storage/app:/var/www/html/storage/app
|
|
- ./captcha-app/app/storage/logs:/var/www/html/storage/logs
|
|
|
|
captcha-queue:
|
|
# image: korelf/service-captcha-app:0.9.0 # docker hub
|
|
image: docker.mdhub.kor-elf.net/kor-elf/service-captcha-app:0.9.0 # MDHub
|
|
# restart: always
|
|
depends_on:
|
|
- db
|
|
- captcha-redis
|
|
environment:
|
|
CONTAINER_ROLE: queue
|
|
APP_ENV: production
|
|
env_file: captcha-app/.env
|
|
volumes:
|
|
- ./captcha-app/app/storage/app:/var/www/html/storage/app
|
|
- ./captcha-app/app/storage/logs:/var/www/html/storage/logs
|
|
|
|
captcha-reverb:
|
|
# image: korelf/service-captcha-app:0.9.0 # docker hub
|
|
image: docker.mdhub.kor-elf.net/kor-elf/service-captcha-app:0.9.0 # MDHub
|
|
# restart: always
|
|
depends_on:
|
|
- db
|
|
- captcha-redis
|
|
environment:
|
|
CONTAINER_ROLE: websockets
|
|
APP_ENV: production
|
|
env_file: captcha-app/.env
|
|
volumes:
|
|
- ./captcha-app/app/storage/app:/var/www/html/storage/app
|
|
- ./captcha-app/app/storage/logs:/var/www/html/storage/logs
|
|
ports:
|
|
- ${DOCKER_CAPTCHA_WEBSOCKET_PORT}:9000
|
|
|
|
captcha-scheduler:
|
|
# image: korelf/service-captcha-app:0.9.0 # docker hub
|
|
image: docker.mdhub.kor-elf.net/kor-elf/service-captcha-app:0.9.0 # MDHub
|
|
# restart: always
|
|
depends_on:
|
|
- db
|
|
- captcha-redis
|
|
environment:
|
|
CONTAINER_ROLE: scheduler
|
|
APP_ENV: production
|
|
env_file: captcha-app/.env
|
|
volumes:
|
|
- ./captcha-app/app/storage/app:/var/www/html/storage/app
|
|
- ./captcha-app/app/storage/logs:/var/www/html/storage/logs
|
|
captcha-swagger:
|
|
image: swaggerapi/swagger-ui
|
|
depends_on:
|
|
- captcha-app
|
|
environment:
|
|
URLS: "[ { url: '/swagger.json', name: '/swagger.json' } ]"
|
|
BASE_URL: /api-docs
|
|
captcha-redis:
|
|
image: redis:3.0-alpine # docker hub
|
|
volumes:
|
|
- ./captcha-app/redis/data:/data
|
|
db:
|
|
image: docker.io/mysql:8.0.33 # docker hub
|
|
command: --default-authentication-plugin=mysql_native_password
|
|
#restart: always
|
|
ports:
|
|
- ${DOCKER_DB_PORT}:3306
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
|
MYSQL_DATABASE: ${DB_DATABASE}
|
|
MYSQL_USER: ${DB_USERNAME}
|
|
MYSQL_PASSWORD: ${DB_PASSWORD}
|
|
volumes:
|
|
- ./db/data:/var/lib/mysql
|
|
|
|
artisan:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: ARTISAN
|
|
user: "${UID}:${GID}"
|
|
volumes:
|
|
- ./app/application:/var/www/html
|
|
|
|
composer:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: COMPOSER
|
|
user: "${UID}:${GID}"
|
|
volumes:
|
|
- ./app/application:/var/www/html
|
|
|
|
npm:
|
|
build:
|
|
context: app
|
|
dockerfile: docker/Dockerfile
|
|
target: NPM
|
|
user: "${UID}:${GID}"
|
|
volumes:
|
|
- ./app/application:/var/www/html
|