100 lines
2.4 KiB
YAML
100 lines
2.4 KiB
YAML
name: ${COMPOSE_PROJECT_NAME:-recruitment-hc}
|
|
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
restart: unless-stopped
|
|
init: true
|
|
ports:
|
|
- "${APP_BIND_IP:-127.0.0.1}:${APP_PORT:-8086}:80"
|
|
environment:
|
|
MYSQL_HOST: db
|
|
MYSQL_PORT: "3306"
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE:-recruitment}
|
|
MYSQL_USER: ${MYSQL_USER:-recruitment}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD:?Set MYSQL_PASSWORD}
|
|
REC_PASS_SCORE: ${REC_PASS_SCORE:-300}
|
|
TZ: Asia/Jakarta
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- php_sessions:/var/lib/php/sessions
|
|
healthcheck:
|
|
test: ["CMD", "php", "/usr/local/bin/recruitment-healthcheck.php"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 30s
|
|
retries: 3
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
db:
|
|
image: mysql:8.4
|
|
restart: unless-stopped
|
|
environment:
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE:-recruitment}
|
|
MYSQL_USER: ${MYSQL_USER:-recruitment}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD:?Set MYSQL_PASSWORD}
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?Set MYSQL_ROOT_PASSWORD}
|
|
TZ: Asia/Jakarta
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- >-
|
|
MYSQL_PWD="$${MYSQL_ROOT_PASSWORD}"
|
|
mysql --protocol=TCP -h 127.0.0.1 -u root
|
|
-Nse "SELECT 1" >/dev/null 2>&1
|
|
interval: 10s
|
|
timeout: 5s
|
|
start_period: 60s
|
|
retries: 12
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
phpmyadmin:
|
|
image: phpmyadmin:5.2-apache
|
|
restart: unless-stopped
|
|
ports:
|
|
- "${PHPMYADMIN_BIND_IP:-127.0.0.1}:${PHPMYADMIN_PORT:-8087}:80"
|
|
environment:
|
|
PMA_HOST: db
|
|
PMA_PORT: "3306"
|
|
PMA_ABSOLUTE_URI: ${PMA_ABSOLUTE_URI:-}
|
|
UPLOAD_LIMIT: ${PHPMYADMIN_UPLOAD_LIMIT:-64M}
|
|
HIDE_PHP_VERSION: "true"
|
|
TZ: Asia/Jakarta
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- phpmyadmin_sessions:/sessions
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- curl --fail --silent --max-time 3 http://127.0.0.1/ > /dev/null
|
|
interval: 30s
|
|
timeout: 5s
|
|
start_period: 30s
|
|
retries: 3
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
volumes:
|
|
mysql_data:
|
|
php_sessions:
|
|
phpmyadmin_sessions:
|