- Dockerfile: php:apache base, installs PHP extensions + Composer, configures Apache to listen on port 7876, bundles app code, runs composer install at build time - docker-compose.yml: web service (port 7876) + MariaDB LTS with healthcheck; writable volume for DB persistence - docker/entrypoint.sh: generates .env from environment variables at container start, fixes runtime permissions - docker/php.ini: tuned PHP limits (512M memory, 32M upload) - .dockerignore: excludes .git, vendor, logs, cache, old docker dir - .env.example: template for required environment variables Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
44 lines
1.1 KiB
YAML
44 lines
1.1 KiB
YAML
services:
|
|
web:
|
|
build: .
|
|
container_name: domnitor-web
|
|
restart: unless-stopped
|
|
ports:
|
|
- "7876:7876"
|
|
environment:
|
|
DB_HOST: db
|
|
DB_PORT: "3306"
|
|
DB_DATABASE: ${DB_DATABASE:-domain_monitor}
|
|
DB_USERNAME: ${DB_USERNAME:-domain_monitor}
|
|
DB_PASSWORD: ${DB_PASSWORD:-changeme}
|
|
APP_ENV: ${APP_ENV:-production}
|
|
TZ: ${TZ:-UTC}
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
|
|
db:
|
|
image: mariadb:lts
|
|
container_name: domnitor-db
|
|
restart: unless-stopped
|
|
environment:
|
|
MARIADB_DATABASE: ${DB_DATABASE:-domain_monitor}
|
|
MARIADB_USER: ${DB_USERNAME:-domain_monitor}
|
|
MARIADB_PASSWORD: ${DB_PASSWORD:-changeme}
|
|
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootchangeme}
|
|
TZ: ${TZ:-UTC}
|
|
command:
|
|
- "--character-set-server=utf8mb4"
|
|
- "--collation-server=utf8mb4_unicode_ci"
|
|
volumes:
|
|
- dbdata:/var/lib/mysql
|
|
healthcheck:
|
|
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
|
start_period: 15s
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
dbdata:
|