File: /var/www/ai-notam/docker-compose-loc.yml
services:
web:
image: nginx:alpine
container_name: laravel-web
restart: unless-stopped
ports:
- 80:80
volumes:
- ./docker/nginx/files/default.conf:/etc/nginx/conf.d/default.conf:ro
- ./laravel:/var/www/html:delegated
depends_on:
- php
networks:
- proxy
ports:
- "127.0.0.1:81:80"
- "127.0.0.1:444:443"
depends_on:
- php
- mysql
links:
- php
- mysql
labels:
- "traefik.enable=true"
- "traefik.http.services.notamweb.loadbalancer.server.port=80"
- "traefik.http.middlewares.notamweb-https.redirectscheme.scheme=http"
- "traefik.http.routers.notamweb-http.entrypoints=http"
- "traefik.http.routers.notamweb-http.rule=Host(`notam.aeromap.pro`)"
- "traefik.http.routers.notamweb.entrypoints=https"
- "traefik.http.routers.notamweb.rule=Host(`notam.aeromap.pro`)"
- "traefik.http.routers.notamweb.tls=true"
php:
build: docker/php
container_name: notam-php
restart: unless-stopped
expose:
- 9000
logging:
driver: "json-file"
options:
max-size: '1g'
max-file: '5'
volumes:
- ".:/var/www/html:delegated"
ports:
- "127.0.0.1:9001:9000"
- "127.0.0.1:2346:2346"
links:
- mysql
- redis
networks:
- proxy
environment:
APP_NAME: ${APP_NAME}
DB_CONNECTION: mysql
DB_HOST: mysql
DB_PORT: 3306
DB_DATABASE: ${DB_DATABASE}
DB_USERNAME: ${DB_USERNAME}
DB_PASSWORD: ${DB_PASSWORD}
OPEN_AI_KEY: ${OPEN_AI_KEY}
mysql:
image: mysql:8.3.0
platform: linux
container_name: notam-mysql
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: '1g'
max-file: '5'
env_file:
- '.env'
networks:
- proxy
environment:
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_USER=${DB_USERNAME}
ports:
- "127.0.0.1:8989:3306"
volumes:
- ./db:/var/lib/mysql:delegated
redis:
image: redis:7-alpine
container_name: notam-redis
restart: unless-stopped
command: [ "redis-server", "--save", "60", "1", "--appendonly", "yes" ]
ports:
- "127.0.0.1:6379:6379"
volumes:
- ./redis:/data:delegated
networks:
- proxy
cron:
build:
context: docker/cron
dockerfile: Dockerfile
container_name: notam-cron
restart: unless-stopped
volumes:
- ".:/var/www/html:delegated"
- "./docker/cron/crontab:/etc/crontabs/root:ro"
command: [ "crond", "-f", "-l", "8" ]
depends_on:
- php
networks:
- proxy
worker:
build: ./docker/php
command: php /var/www/html/laravel/artisan queue:work --sleep=3 --tries=3 --timeout=60
restart: unless-stopped
depends_on:
- php
- mysql
environment:
- APP_ENV=development
- QUEUE_CONNECTION=database
- DB_HOST=mysql
- DB_PORT=3306
- DB_DATABASE=${DB_DATABASE}
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- OPEN_AI_KEY=${OPEN_AI_KEY}
volumes:
- ./:/var/www/html
networks:
- proxy
deploy:
restart_policy:
condition: any
networks:
proxy:
driver: bridge