PHP 8.3/Apache + MariaDB 11.4 with the repo bind-mounted as web root. Apache denies dotfiles (.env, .git), the docker files and /install-dev (installation runs via CLI as www-data, see docker-compose.yml). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
43 lines
1.4 KiB
YAML
43 lines
1.4 KiB
YAML
# Local development setup for QloApps.
|
|
# Start: docker compose up -d --build
|
|
# Shop: http://localhost:8080
|
|
# Admin: http://localhost:8080/admin-dev (login: ADMIN_EMAIL / ADMIN_PASSWORD from .env)
|
|
# Values come from .env (copy .env.example to .env).
|
|
#
|
|
# Install (once, as www-data so file permissions stay correct; the web installer is blocked):
|
|
# docker compose exec -u www-data app php install-dev/index_cli.php --language=de --country=de \
|
|
# --timezone=Europe/Berlin --domain=localhost:8080 --db_server=db --db_user=qloapps \
|
|
# --db_password=<DB_PASSWORD> --db_name=qloapps --email=<ADMIN_EMAIL> --password=<ADMIN_PASSWORD> \
|
|
# --newsletter=0
|
|
|
|
services:
|
|
app:
|
|
build: ./docker
|
|
ports:
|
|
- "${APP_PORT:-8080}:80"
|
|
volumes:
|
|
- ./:/var/www/html
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
restart: unless-stopped
|
|
|
|
db:
|
|
image: mariadb:11.4
|
|
environment:
|
|
MARIADB_DATABASE: ${DB_NAME:-qloapps}
|
|
MARIADB_USER: ${DB_USER:-qloapps}
|
|
MARIADB_PASSWORD: ${DB_PASSWORD:?set DB_PASSWORD in .env}
|
|
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:?set DB_ROOT_PASSWORD in .env}
|
|
volumes:
|
|
- db_data:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 20
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
db_data:
|