docker_zoo/docker-compose.dist.yml

180 lines
5.0 KiB
YAML

version: '3'
services:
nginx:
image: nginx:alpine
container_name: nginx_${APP_NAME}
restart: 'no'
depends_on:
- ${PHP_HOST}
ports:
- ${NGINX_PORT}:80
volumes:
- ./docker/nginx/templates:/etc/nginx/templates
- ${PROJECT_DIR}:/var/www
environment:
WEB_ROOT: ${WEB_ROOT}
# this allows you to switch versions
# use the name of a php service presented in this file
# in your .env
PHP_HOST: ${PHP_HOST}
phpfpm:
build:
context: ./docker/php-fpm/
dockerfile: Dockerfile.dist
container_name: phpfpm_${APP_NAME}
restart: 'no'
volumes:
- ${PROJECT_DIR}:/var/www
- ./docker/php-fpm/php.ini:/etc/php/7.4/php.ini
- ./docker/php-fpm/xdebug.ini:/etc/php/7.4/mods-available/xdebug.ini
- ./docker/php-fpm/supervisor.conf:/etc/supervisor/supervisor_nodeamon.conf
- ./docker/imagick/policy.xml:/etc/ImageMagick-6/policy.xml
# One can add any configuration overrides.
# Just put them under ./docker/userconfigs/
# and map as following
# - ./docker/userconfigs/supervisor/conf.d:/etc/supervisor/conf.d
environment:
XDEBUG_PORT: ${XDEBUG_PORT}
XDEBUG_HOST: ${XDEBUG_HOST}
XDEBUG_IDE: ${XDEBUG_IDE}
working_dir: /var/www
phpfpm8:
build:
context: ./docker/php-fpm8/
dockerfile: Dockerfile.dist
container_name: phpfpm8_${APP_NAME}
restart: 'no'
volumes:
- ${PROJECT_DIR}:/var/www
- ./docker/php-fpm8/php.ini:/etc/php/8.0/php.ini
- ./docker/php-fpm8/xdebug.ini:/etc/php/8.0/mods-available/xdebug.ini
- ./docker/php-fpm8/supervisor.conf:/etc/supervisor/supervisor_nodeamon.conf
- ./docker/imagick/policy.xml:/etc/ImageMagick-6/policy.xml
# One can add any configuration overrides.
# Just put them under ./docker/userconfigs/
# and map as following
# - ./docker/userconfigs/supervisor/conf.d:/etc/supervisor/conf.d
environment:
XDEBUG_PORT: ${XDEBUG_PORT}
XDEBUG_HOST: ${XDEBUG_HOST}
XDEBUG_IDE: ${XDEBUG_IDE}
working_dir: /var/www
phpfpm81:
build:
context: ./docker/php-fpm81/
dockerfile: Dockerfile.dist
container_name: phpfpm81_${APP_NAME}
restart: 'no'
volumes:
- ${PROJECT_DIR}:/var/www
- ./docker/php-fpm81/php.ini:/etc/php/8.1/php.ini
- ./docker/php-fpm81/pools/www.conf:/etc/php/8.1/fpm/pool.d/www.conf
- ./docker/php-fpm81/xdebug.ini:/etc/php/8.1/mods-available/xdebug.ini
- ./docker/php-fpm81/supervisor.conf:/etc/supervisor/supervisor_nodeamon.conf
- ./docker/imagick/policy.xml:/etc/ImageMagick-6/policy.xml
environment:
XDEBUG_PORT: ${XDEBUG_PORT}
XDEBUG_HOST: ${XDEBUG_HOST}
XDEBUG_IDE: ${XDEBUG_IDE}
working_dir: /var/www
postgres:
image: postgis/postgis:13-master
container_name: postgis_${APP_NAME}
restart: 'no'
ports:
- ${PG_PORT}:5432
volumes:
- pgsql:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ${PASSWORD}
pgadmin:
image: dpage/pgadmin4:latest
restart: 'no'
container_name: pgadmin_${APP_NAME}
ports:
- ${PG_ADMIN_PORT}:${PG_ADMIN_PORT}
volumes:
- pgadmin:/var/lib/pgadmin:rw
environment:
PGADMIN_LISTEN_PORT: ${PG_ADMIN_PORT}
PGADMIN_DEFAULT_EMAIL: ${EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PASSWORD}
mysql-legacy:
image: mysql:5.7
restart: 'no'
container_name: mysql_legacy_${APP_NAME}
ports:
- ${MYSQL_LEGACY_PORT}:3306
volumes:
- ./docker/mysql/my.cnf:/etc/alternatives/my.cnf
- ./docker/mysql/mysql.conf.d:/etc/mysql/conf.d/
- mysql_legacy:/var/lib/mysql
environment:
MYSQL_TCP_PORT: ${MYSQL_LEGACY_PORT}
MYSQL_ROOT_PASSWORD: ${PASSWORD}
mysql:
image: mysql:latest
container_name: mysql_${APP_NAME}
restart: 'no'
environment:
MYSQL_TCP_PORT: ${MYSQL_PORT}
MYSQL_ROOT_PASSWORD: ${PASSWORD}
ports:
- ${MYSQL_PORT}:3306
volumes:
- mysql:/var/lib/mysql
- ./docker/mysql-latest:/etc/mysql/conf.d
rabbitmq:
image: rabbitmq:management-alpine
container_name: rabbit_${APP_NAME}
restart: 'no'
ports:
- ${RABBIT_ADMIN_PORT}:15672
- ${RABBIT_PORT}:5672
environment:
RABBITMQ_DEFAULT_USER: ${APP_USER}
RABBITMQ_DEFAULT_PASS: ${PASSWORD}
RABBITMQ_DEFAULT_VHOST: ${APP_NAME}
minio:
image: minio/minio
hostname: minio
container_name: minio_${APP_NAME}
restart: 'no'
ports:
- ${MINIO_ADMIN_PORT}:9001
- ${MINIO_PORT}:9000
environment:
MINIO_ROOT_USER: ${APP_USER}
MINIO_ROOT_PASSWORD: ${PASSWORD}
MINIO_REGION_NAME: ${MINIO_REGION_NAME}
volumes:
- minio:/data
command: minio server --console-address ":9001" /data
volumes:
pgsql:
name: pgsql_${APP_NAME}
external: false
mysql:
name: mysql_${APP_NAME}
external: false
mysql_legacy:
name: mysql_legacy_${APP_NAME}
external: false
pgadmin:
name: pgadmin_${APP_NAME}
external: false
minio:
name: minio_${APP_NAME}
external: false