docker-laravel-stack/docker-compose.yml
2025-10-31 11:29:14 -04:00

130 lines
2.9 KiB
YAML
Executable file

services:
nginx:
build:
context: .
dockerfile: docker/Dockerfile.nginx
args:
HTTP_PROXY: ${HTTP_PROXY}
HTTPS_PROXY: ${HTTPS_PROXY}
container_name: nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./docker/nginx/nginx.conf.template:/etc/nginx/nginx.conf.template
- ./${APP_HOST_DIR}:/var/www/app
- ./certs:/etc/nginx/certs
- ./docker/nginx/nginx-logs:/var/log/nginx
environment:
- DNS=${DNS}
- SSL_MODE=${SSL_MODE}
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- NO_PROXY=${NO_PROXY}
depends_on:
- php
networks:
- laravel-net
php:
build:
context: .
dockerfile: docker/Dockerfile.php
args:
HTTP_PROXY: ${HTTP_PROXY}
HTTPS_PROXY: ${HTTPS_PROXY}
container_name: php
restart: unless-stopped
user: "${UID}:${GID}"
volumes:
- ./${APP_HOST_DIR}:/var/www/app
expose:
- "9000"
environment:
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- NO_PROXY=${NO_PROXY}
networks:
- laravel-net
mariadb:
image: mariadb:latest
container_name: mariadb
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
volumes:
- ./mariadb-data:/var/lib/mysql
ports:
- "3306:3306"
networks:
- laravel-net
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
- PMA_HOST=${PMA_HOST}
- PMA_PORT=${PMA_PORT}
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- NO_PROXY=${NO_PROXY}
ports:
- "8080:80"
depends_on:
- mariadb
networks:
- laravel-net
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
environment:
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- NO_PROXY=${NO_PROXY}
networks:
- laravel-net
mailhog:
image: mailhog/mailhog:latest
container_name: mailhog
ports:
- "8025:8025"
environment:
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- NO_PROXY=${NO_PROXY}
networks:
- laravel-net
# ---------------------------------
# 👀 File Watcher (auto rebuild)
# ---------------------------------
watch:
user: "${UID}:${GID}"
build:
context: .
dockerfile: docker/Dockerfile.watch
args:
HTTP_PROXY: ${HTTP_PROXY}
HTTPS_PROXY: ${HTTPS_PROXY}
container_name: watch
restart: unless-stopped
volumes:
- ./${APP_HOST_DIR}:/app
- /var/run/docker.sock:/var/run/docker.sock
environment:
- HTTP_PROXY=${HTTP_PROXY}
- HTTPS_PROXY=${HTTPS_PROXY}
- NO_PROXY=${NO_PROXY}
networks:
- laravel-net
networks:
laravel-net:
driver: bridge