88 lines
2.8 KiB
YAML
88 lines
2.8 KiB
YAML
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
|