netgescon-day0/docker-compose.yml

179 lines
5.1 KiB
YAML
Executable File

services:
app:
build:
context: .
dockerfile: Dockerfile
container_name: ${NETGESCON_APP_CONTAINER_NAME:-netgescon_app}
restart: unless-stopped
env_file:
- .env.docker.local
environment:
APP_ENV: local
APP_DEBUG: "true"
APP_URL: http://localhost:${APP_PORT:-8080}
DB_CONNECTION: mysql
DB_HOST: ${NETGESCON_DB_HOST:-host.docker.internal}
DB_PORT: ${NETGESCON_DB_PORT:-3306}
DB_DATABASE: ${NETGESCON_DB_DATABASE:-netgescon}
DB_USERNAME: ${NETGESCON_DB_USERNAME:-netgescon}
DB_PASSWORD: ${NETGESCON_DB_PASSWORD:-netgescon}
REDIS_HOST: redis
REDIS_PORT: 6379
CACHE_STORE: file
SESSION_DRIVER: file
QUEUE_CONNECTION: database
MAIL_MAILER: smtp
MAIL_HOST: mailhog
MAIL_PORT: 1025
FIX_PERMISSIONS: "true"
WAIT_FOR_DB: "true"
RUN_MIGRATIONS: ${RUN_MIGRATIONS:-false}
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ${NETGESCON_STORAGE_PATH:-./storage}:/var/www/storage
- ${NETGESCON_CACHE_PATH:-./bootstrap/cache}:/var/www/bootstrap/cache
- public_data:/var/www/public
networks:
- netgescon_network
- online_db_network
depends_on:
- redis
queue:
build:
context: .
dockerfile: Dockerfile
container_name: ${NETGESCON_QUEUE_CONTAINER_NAME:-netgescon_queue}
restart: unless-stopped
env_file:
- .env.docker.local
environment:
APP_ENV: local
APP_DEBUG: "true"
APP_URL: http://localhost:${APP_PORT:-8080}
DB_CONNECTION: mysql
DB_HOST: ${NETGESCON_DB_HOST:-host.docker.internal}
DB_PORT: ${NETGESCON_DB_PORT:-3306}
DB_DATABASE: ${NETGESCON_DB_DATABASE:-netgescon}
DB_USERNAME: ${NETGESCON_DB_USERNAME:-netgescon}
DB_PASSWORD: ${NETGESCON_DB_PASSWORD:-netgescon}
REDIS_HOST: redis
REDIS_PORT: 6379
CACHE_STORE: file
SESSION_DRIVER: file
QUEUE_CONNECTION: database
MAIL_MAILER: smtp
MAIL_HOST: mailhog
MAIL_PORT: 1025
FIX_PERMISSIONS: "true"
WAIT_FOR_DB: "true"
RUN_MIGRATIONS: "false"
command: ["php", "artisan", "queue:work", "--verbose", "--tries=3", "--timeout=120"]
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ${NETGESCON_STORAGE_PATH:-./storage}:/var/www/storage
- ${NETGESCON_CACHE_PATH:-./bootstrap/cache}:/var/www/bootstrap/cache
networks:
- netgescon_network
- online_db_network
depends_on:
- redis
- app
scheduler:
build:
context: .
dockerfile: Dockerfile
container_name: ${NETGESCON_SCHEDULER_CONTAINER_NAME:-netgescon_scheduler}
restart: unless-stopped
env_file:
- .env.docker.local
environment:
APP_ENV: local
APP_DEBUG: "true"
APP_URL: http://localhost:${APP_PORT:-8080}
DB_CONNECTION: mysql
DB_HOST: ${NETGESCON_DB_HOST:-host.docker.internal}
DB_PORT: ${NETGESCON_DB_PORT:-3306}
DB_DATABASE: ${NETGESCON_DB_DATABASE:-netgescon}
DB_USERNAME: ${NETGESCON_DB_USERNAME:-netgescon}
DB_PASSWORD: ${NETGESCON_DB_PASSWORD:-netgescon}
REDIS_HOST: redis
REDIS_PORT: 6379
CACHE_STORE: file
SESSION_DRIVER: file
QUEUE_CONNECTION: database
MAIL_MAILER: smtp
MAIL_HOST: mailhog
MAIL_PORT: 1025
FIX_PERMISSIONS: "true"
WAIT_FOR_DB: "true"
RUN_MIGRATIONS: "false"
command: ["php", "artisan", "schedule:work"]
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ${NETGESCON_STORAGE_PATH:-./storage}:/var/www/storage
- ${NETGESCON_CACHE_PATH:-./bootstrap/cache}:/var/www/bootstrap/cache
networks:
- netgescon_network
- online_db_network
depends_on:
- redis
- app
nginx:
image: nginx:alpine
container_name: ${NETGESCON_NGINX_CONTAINER_NAME:-netgescon_nginx}
restart: unless-stopped
ports:
- "${APP_PORT:-8080}:80"
volumes:
- public_data:/var/www/public:ro
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- netgescon_network
depends_on:
- app
redis:
image: redis:alpine
container_name: ${NETGESCON_REDIS_CONTAINER_NAME:-netgescon_redis}
restart: unless-stopped
volumes:
- redis_data:/data
networks:
- netgescon_network
mailhog:
image: mailhog/mailhog
container_name: ${NETGESCON_MAILHOG_CONTAINER_NAME:-netgescon_mailhog}
ports:
- "${MAILHOG_SMTP_PORT:-1025}:1025"
- "${MAILHOG_UI_PORT:-8025}:8025"
networks:
- netgescon_network
host_mysql_bridge:
image: alpine/socat
container_name: ${NETGESCON_HOST_MYSQL_BRIDGE_CONTAINER_NAME:-netgescon_host_mysql_bridge}
restart: unless-stopped
network_mode: host
command:
- TCP-LISTEN:${HOST_MYSQL_BRIDGE_PORT:-13306},fork,reuseaddr,bind=0.0.0.0
- TCP:127.0.0.1:${HOST_MYSQL_TARGET_PORT:-3306}
volumes:
redis_data:
public_data:
networks:
netgescon_network:
driver: bridge
online_db_network:
external: true
name: ${NETGESCON_EXTERNAL_NETWORK:-docker_netgescon_online}