133 lines
4.3 KiB
YAML
133 lines
4.3 KiB
YAML
name: investmoz-development
|
|
services:
|
|
app:
|
|
build:
|
|
context: ../../vendor/laravel/sail/runtimes/8.5
|
|
args:
|
|
WWWGROUP: '${WWWGROUP:-1000}'
|
|
NODE_VERSION: '24'
|
|
POSTGRES_VERSION: '17'
|
|
image: investmoz-development-php85
|
|
environment: &application
|
|
WWWUSER: '${WWWUSER:-1000}'
|
|
APP_ENV: local
|
|
APP_DEBUG: 'false'
|
|
APP_KEY: '${APP_KEY:?Generate the isolated development key first}'
|
|
APP_URL: 'http://localhost:${PORTAL_PORT:-8088}'
|
|
DB_CONNECTION: pgsql
|
|
DB_HOST: postgres
|
|
DB_PORT: '5432'
|
|
DB_DATABASE: investmoz_development
|
|
DB_USERNAME: investmoz
|
|
DB_PASSWORD: '${DB_PASSWORD:?Generate a local database password first}'
|
|
DB_URL: ''
|
|
CACHE_STORE: database
|
|
QUEUE_CONNECTION: database
|
|
DB_QUEUE_RETRY_AFTER: '210'
|
|
SESSION_DRIVER: database
|
|
SESSION_SECURE_COOKIE: 'false'
|
|
MAIL_MAILER: array
|
|
PORTAL_NOTIFICATIONS_ENABLED: 'false'
|
|
LOG_CHANNEL: stderr
|
|
FILESYSTEM_DISK: local
|
|
MALWARE_SCANNER: clamd
|
|
CLAMD_HOST: clamav
|
|
CLAMD_PORT: '3310'
|
|
CLAMD_TIMEOUT_SECONDS: '120'
|
|
CLAMD_MAX_SIGNATURE_AGE_HOURS: '48'
|
|
CLAMD_MAX_FILE_BYTES: '20971520'
|
|
CLAMD_MAX_STREAM_BYTES: '26214400'
|
|
CLAMD_MAX_DECOMPRESSED_BYTES: '104857600'
|
|
CLAMD_MAX_ARCHIVE_ENTRIES: '1000'
|
|
volumes:
|
|
- ../..:/var/www/html
|
|
- ./runtime.env.example:/var/www/html/.env:ro
|
|
- application-storage:/var/www/html/storage
|
|
- application-cache:/var/www/html/bootstrap/cache
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
networks:
|
|
- default
|
|
- malware-private
|
|
healthcheck:
|
|
test: ['CMD', 'curl', '--fail', 'http://127.0.0.1/up']
|
|
interval: 15s
|
|
timeout: 5s
|
|
retries: 5
|
|
web:
|
|
image: nginx:stable-alpine
|
|
ports:
|
|
- '127.0.0.1:${PORTAL_PORT:-8088}:80'
|
|
volumes:
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
depends_on:
|
|
app:
|
|
condition: service_healthy
|
|
queue:
|
|
image: investmoz-development-php85
|
|
environment:
|
|
<<: *application
|
|
SUPERVISOR_PHP_COMMAND: '/usr/bin/php /var/www/html/artisan queue:work --sleep=3 --tries=3 --timeout=150'
|
|
volumes:
|
|
- ../..:/var/www/html
|
|
- ./runtime.env.example:/var/www/html/.env:ro
|
|
- application-storage:/var/www/html/storage
|
|
- application-cache:/var/www/html/bootstrap/cache
|
|
depends_on:
|
|
app:
|
|
condition: service_healthy
|
|
networks:
|
|
- default
|
|
- malware-private
|
|
postgres:
|
|
image: postgis/postgis:17-3.5
|
|
environment:
|
|
POSTGRES_DB: investmoz_development
|
|
POSTGRES_USER: investmoz
|
|
POSTGRES_PASSWORD: '${DB_PASSWORD:?Generate a local database password first}'
|
|
volumes:
|
|
- database:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test:
|
|
[
|
|
'CMD-SHELL',
|
|
'pg_isready -U investmoz -d investmoz_development',
|
|
]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
networks:
|
|
- default
|
|
clamav:
|
|
image: clamav/clamav:1.5.4
|
|
environment:
|
|
CLAMAV_NO_MILTERD: 'true'
|
|
CLAMD_STARTUP_TIMEOUT: '1800'
|
|
FRESHCLAM_CHECKS: '12'
|
|
volumes:
|
|
- clamav-database:/var/lib/clamav
|
|
- ./clamd.conf:/etc/clamav/clamd.conf:ro
|
|
mem_limit: 4g
|
|
cpus: 2.0
|
|
logging:
|
|
options:
|
|
max-size: '10m'
|
|
max-file: '3'
|
|
healthcheck:
|
|
test: ['CMD', 'clamdscan', '--ping=3']
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30m
|
|
networks:
|
|
- malware-private
|
|
networks:
|
|
malware-private:
|
|
driver: bridge
|
|
volumes:
|
|
database:
|
|
application-storage:
|
|
application-cache:
|
|
clamav-database:
|