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