File: /var/www/ai-notam/docker-compose.yml
services:
web:
image: nginx:alpine
container_name: notam-web
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: '1g'
max-file: '5'
volumes:
- "./docker/nginx/files/default.conf:/etc/nginx/conf.d/default.conf:delegated"
- ".:/var/www/html:delegated"
networks:
- proxy
#ports:
# - "8069:80"
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
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
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
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:
external: true