version: '3'
services:
nginx:
build:
context: ./docker/nginx
depends_on:
- php-fpm
ports:
- "${NGINX_HOST_HTTPS_PORT}:443"
volumes:
- ${NGINX_SSL_PATH}:/etc/nginx/ssl
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
networks:
- memorialbook
php-fpm:
build:
context: ./docker/php-fpm
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
networks:
- memorialbook
mysql:
image: 'mysql/mysql-server:8.0'
ports:
- '${DB_FORWARD_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_HOST: "%"
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 1
volumes:
- 'memorialbook-mysql:/var/lib/mysql'
- '${APP_CODE_PATH_HOST}/docker/mysql/my.cnf:/etc/mysql/my.cnf'
- '${APP_CODE_PATH_HOST}/docker/mysql/10-create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
networks:
- memorialbook
healthcheck:
test: [ "CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}" ]
retries: 3
timeout: 5s
clickhouse-server:
image: yandex/clickhouse-server
container_name: clickhouse-server
ports:
- '8123:8123'
- '9000:9000'
volumes:
- ./db:/var/lib/clickhouse
ulimits:
nofile: 262144
# mysql-testing:
# image: 'mysql/mysql-server:8.0'
# ports:
# - '${TESTING_DB_PORT:-3306}:3306'
# environment:
# MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
# MYSQL_ROOT_HOST: "%"
# MYSQL_DATABASE: 'testing'
# MYSQL_USER: '${DB_USERNAME}'
# MYSQL_PASSWORD: '${DB_PASSWORD}'
# MYSQL_ALLOW_EMPTY_PASSWORD: 1
# networks:
# - memorialbook
redis:
image: 'redis:alpine'
command: redis-server --appendonly yes --requirepass "${REDIS_PASSWORD}"
ports:
- '${REDIS_PORT:-6379}:6379'
volumes:
- 'memorialbook-redis:/data'
networks:
- memorialbook
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
retries: 3
timeout: 5s
# mailhog:
# image: 'mailhog/mailhog:latest'
# ports:
# - '${FORWARD_MAILHOG_PORT:-1025}:1025'
# - '${FORWARD_MAILHOG_DASHBOARD_PORT:-8025}:8025'
# networks:
# - memorialbook
networks:
memorialbook:
driver: bridge
volumes:
memorialbook-mysql:
driver: local
memorialbook-redis:
driver: local