Files
MeshVault/docker-compose.yml
T

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: