80 lines
2.0 KiB
YAML
80 lines
2.0 KiB
YAML
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
target: app
|
|
volumes:
|
|
- app_code:/var/www/html
|
|
environment:
|
|
APP_NAME: "${APP_NAME:-MySkin}"
|
|
APP_ENV: production
|
|
APP_DEBUG: "false"
|
|
APP_KEY: "${APP_KEY}"
|
|
APP_URL: "${APP_URL}"
|
|
LOG_CHANNEL: stderr
|
|
LOG_DEPRECATIONS_CHANNEL: "null"
|
|
LOG_LEVEL: "${LOG_LEVEL:-warning}"
|
|
DB_CONNECTION: "${DB_CONNECTION:-mysql}"
|
|
DB_HOST: "${DB_HOST:-db}"
|
|
DB_PORT: "${DB_PORT:-3306}"
|
|
DB_DATABASE: "${DB_DATABASE}"
|
|
DB_USERNAME: "${DB_USERNAME}"
|
|
DB_PASSWORD: "${DB_PASSWORD}"
|
|
AI_PREDICT_URL: "${AI_PREDICT_URL}"
|
|
AI_MELANOMA_THRESHOLD: "${AI_MELANOMA_THRESHOLD:-0.5}"
|
|
AI_MELANOMA_LABEL: "${AI_MELANOMA_LABEL:-Melanoma}"
|
|
AI_NEGATIVE_LABEL: "${AI_NEGATIVE_LABEL:-Non-Melanoma}"
|
|
SESSION_DRIVER: database
|
|
SESSION_LIFETIME: "120"
|
|
SESSION_SECURE_COOKIE: "true"
|
|
BROADCAST_CONNECTION: log
|
|
FILESYSTEM_DISK: local
|
|
QUEUE_CONNECTION: database
|
|
CACHE_STORE: database
|
|
MAIL_MAILER: log
|
|
APP_MAINTENANCE_DRIVER: file
|
|
BCRYPT_ROUNDS: "12"
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
networks:
|
|
- internal
|
|
restart: unless-stopped
|
|
|
|
nginx:
|
|
build:
|
|
context: .
|
|
target: nginx
|
|
volumes:
|
|
- app_code:/var/www/html:ro
|
|
networks:
|
|
- internal
|
|
restart: unless-stopped
|
|
|
|
db:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.db
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: "${DB_ROOT_PASSWORD:?DB_ROOT_PASSWORD is required}"
|
|
MYSQL_DATABASE: "${DB_DATABASE:-humicpro_myskin_v2}"
|
|
MYSQL_USER: "${DB_USERNAME:-humicpro_myskin_v2}"
|
|
MYSQL_PASSWORD: "${DB_PASSWORD:?DB_PASSWORD is required}"
|
|
volumes:
|
|
- db_data:/var/lib/mysql
|
|
networks:
|
|
- internal
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
app_code:
|
|
db_data:
|
|
|
|
networks:
|
|
internal:
|