89 lines
2.9 KiB
YAML
89 lines
2.9 KiB
YAML
services:
|
|
web:
|
|
image: nginx:1.30-alpine
|
|
ports:
|
|
- "${MESHVAULT_HTTP_HOST:-127.0.0.1}:${MESHVAULT_HTTP_PORT:-8090}:80"
|
|
volumes:
|
|
- ./public:/var/www/html/public:ro
|
|
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
|
|
depends_on:
|
|
- app
|
|
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/php/Dockerfile
|
|
user: www-data
|
|
working_dir: /var/www/html
|
|
environment:
|
|
MESHVAULT_LIBRARY_DIR: ${MESHVAULT_LIBRARY_DIR:-/var/lib/meshvault/library}
|
|
MESHVAULT_ENV: ${MESHVAULT_ENV:-production}
|
|
MESHVAULT_LOG_LEVEL: ${MESHVAULT_LOG_LEVEL:-info}
|
|
MESHVAULT_DB_HOST: ${MESHVAULT_DB_HOST:-db}
|
|
MESHVAULT_DB_PORT: ${MESHVAULT_DB_PORT:-5432}
|
|
MESHVAULT_DB_NAME: ${MESHVAULT_DB_NAME:-meshvault}
|
|
MESHVAULT_DB_USER: ${MESHVAULT_DB_USER:-meshvault}
|
|
MESHVAULT_DB_PASSWORD: ${MESHVAULT_DB_PASSWORD:?Set MESHVAULT_DB_PASSWORD in .env}
|
|
volumes:
|
|
- ./public:/var/www/html/public:ro
|
|
- ./src:/var/www/html/src:ro
|
|
- ./config:/var/www/html/config:ro
|
|
- ./templates:/var/www/html/templates:ro
|
|
- ./tests:/var/www/html/tests:ro
|
|
- ./db:/var/www/html/db:ro
|
|
- ./bin:/var/www/html/bin:ro
|
|
- ./composer.json:/var/www/html/composer.json:ro
|
|
- ./phpunit.xml.dist:/var/www/html/phpunit.xml.dist:ro
|
|
- ./phpcs.xml.dist:/var/www/html/phpcs.xml.dist:ro
|
|
- ./dev.sh:/var/www/html/dev.sh:ro
|
|
- ./dev.ps1:/var/www/html/dev.ps1:ro
|
|
- ./README.md:/var/www/html/README.md:ro
|
|
- ./CONTRIBUTING.md:/var/www/html/CONTRIBUTING.md:ro
|
|
- ./LICENSE:/var/www/html/LICENSE:ro
|
|
- ./.editorconfig:/var/www/html/.editorconfig:ro
|
|
- ./.dockerignore:/var/www/html/.dockerignore:ro
|
|
- ./docker-compose.yml:/var/www/html/docker-compose.yml:ro
|
|
- ./docker:/var/www/html/docker:ro
|
|
- ./assets:/var/www/html/assets:ro
|
|
- ./phinx.php:/var/www/html/phinx.php:ro
|
|
- type: bind
|
|
source: ${MESHVAULT_LIBRARY_HOST_DIR:-./library}
|
|
target: ${MESHVAULT_LIBRARY_DIR:-/var/lib/meshvault/library}
|
|
bind:
|
|
create_host_path: false
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
db:
|
|
image: postgres:17-bookworm
|
|
environment:
|
|
POSTGRES_DB: ${MESHVAULT_DB_NAME:-meshvault}
|
|
POSTGRES_USER: ${MESHVAULT_DB_USER:-meshvault}
|
|
POSTGRES_PASSWORD: ${MESHVAULT_DB_PASSWORD:?Set MESHVAULT_DB_PASSWORD in .env}
|
|
volumes:
|
|
- pgdata:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U \"$$POSTGRES_USER\" -d \"$$POSTGRES_DB\""]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 12
|
|
start_period: 10s
|
|
|
|
assets:
|
|
build:
|
|
context: .
|
|
dockerfile: docker/assets/Dockerfile
|
|
profiles: [tools]
|
|
user: node
|
|
working_dir: /workspace
|
|
init: true
|
|
volumes:
|
|
- ./assets/css:/workspace/assets/css:ro
|
|
- ./public:/workspace/public:ro
|
|
- ./public/build:/workspace/public/build
|
|
- ./templates:/workspace/templates:ro
|
|
|
|
volumes:
|
|
pgdata:
|