version: "3" services: webserver: build: context: ./bin/${PHPVERSION} container_name: "${COMPOSE_PROJECT_NAME}-${PHPVERSION}" restart: "always" ports: - "${HOST_MACHINE_UNSECURE_HOST_PORT}:80" - "${HOST_MACHINE_SECURE_HOST_PORT}:443" links: - database volumes: - ${DOCUMENT_ROOT-./www}:/var/www/html:rw - ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/php.ini - ${SSL_DIR-./config/ssl}:/etc/apache2/ssl/ - ${VHOSTS_DIR-./config/vhosts}:/etc/apache2/sites-enabled - ${LOG_DIR-./logs/apache2}:/var/log/apache2 - ${XDEBUG_LOG_DIR-./logs/xdebug}:/var/log/xdebug environment: APACHE_DOCUMENT_ROOT: ${APACHE_DOCUMENT_ROOT-/var/www/html} PMA_PORT: ${HOST_MACHINE_PMA_PORT} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} HOST_MACHINE_MYSQL_PORT: ${HOST_MACHINE_MYSQL_PORT} XDEBUG_CONFIG: "client_host=host.docker.internal remote_port=${XDEBUG_PORT}" extra_hosts: - "host.docker.internal:host-gateway" database: build: context: "./bin/${DATABASE}" container_name: "${COMPOSE_PROJECT_NAME}-${DATABASE}" restart: "always" ports: - "127.0.0.1:${HOST_MACHINE_MYSQL_PORT}:3306" volumes: - ${MYSQL_INITDB_DIR-./config/initdb}:/docker-entrypoint-initdb.d - ${MYSQL_DATA_DIR-./data/mysql}:/var/lib/mysql - ${MYSQL_LOG_DIR-./logs/mysql}:/var/log/mysql environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} phpmyadmin: image: phpmyadmin container_name: "${COMPOSE_PROJECT_NAME}-phpmyadmin" links: - database environment: PMA_HOST: database PMA_PORT: 3306 PMA_USER: root PMA_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} UPLOAD_LIMIT: ${UPLOAD_LIMIT} MEMORY_LIMIT: ${MEMORY_LIMIT} ports: - "${HOST_MACHINE_PMA_PORT}:80" - "${HOST_MACHINE_PMA_SECURE_PORT}:443" volumes: - /sessions - ${PHP_INI-./config/php/php.ini}:/usr/local/etc/php/conf.d/php-phpmyadmin.ini redis: container_name: "${COMPOSE_PROJECT_NAME}-redis" image: redis:latest ports: - "127.0.0.1:${HOST_MACHINE_REDIS_PORT}:6379" code-server: image: lscr.io/linuxserver/code-server:latest container_name: code-server environment: - PUID=1000 - PGID=1000 - TZ=US/Denver - DEFAULT_WORKSPACE=/config/workspace #optional volumes: - ./vs-config:/config - ${DOCUMENT_ROOT-./www}:/config/workspace ports: - ${HOST_MACHINE_VS_PORT}:8443 restart: unless-stopped