-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
executable file
·63 lines (61 loc) · 2.54 KB
/
Copy pathdocker-compose.yml
File metadata and controls
executable file
·63 lines (61 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
services:
intelis:
build:
context: .
target: php-web
args:
UBUNTU_VERSION: ${UBUNTU_VERSION:-24.04}
PHP_VERSION: ${PHP_VERSION:-8.4}
# Deliberately not "image: deforay/intelis:latest". Using a published
# image means dropping the bind mount below, and three things depend on
# it: the configuration would reset from the dist template on every
# container replacement, backups/db would stay inside the container where
# remote-backup.sh cannot reach it, and the installation would be
# invisible to the backup tooling entirely. Publishing an image is a
# reasonable thing to want — it needs those three answered first.
ports:
- "${APACHE_PORT:-80}:80"
volumes:
- .:/var/www/html
# Dev-only PHP overrides. The mount above is what makes them necessary:
# the image is built with OPcache pinned to never revalidate.
- ./docker/php-apache/dev-php.ini:/etc/php/${PHP_VERSION:-8.4}/apache2/conf.d/zz-dev.ini:ro
- ./docker/php-apache/dev-php.ini:/etc/php/${PHP_VERSION:-8.4}/cli/conf.d/zz-dev.ini:ro
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root_password}
- MYSQL_DATABASE=${MYSQL_DATABASE:-vlsm}
- DOMAIN=${DOMAIN:-intelis}
- APACHE_PORT=${APACHE_PORT:-80}
# Interfacing DB — defaults to main db container
# Point these to an external host to use an independent interfacing DB
- INTERFACE_DB_HOST=${INTERFACE_DB_HOST:-intelis-db}
- INTERFACE_DB_PORT=${INTERFACE_DB_PORT:-3306}
- INTERFACE_DB_USER=${INTERFACE_DB_USER:-root}
- INTERFACE_DB_PASSWORD=${INTERFACE_DB_PASSWORD:-${MYSQL_ROOT_PASSWORD:-root_password}}
- INTERFACE_DB_NAME=${INTERFACE_DB_NAME:-interfacing}
- INTERFACING_ENABLED=${INTERFACING_ENABLED:-true}
entrypoint: ["/usr/local/bin/entrypoint.sh"]
restart: unless-stopped
depends_on:
intelis-db:
condition: service_healthy
intelis-db:
image: mysql:8.4
command: --innodb-strict-mode=OFF --sql-mode=""
ports:
- "${MYSQL_PORT:-3306}:3306"
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-root_password}
- MYSQL_DATABASE=${MYSQL_DATABASE:-vlsm}
volumes:
- intelis_db_data:/var/lib/mysql
- ./docker/mysql/my.cnf:/etc/mysql/my.cnf
- ./sql/init.sql:/docker-entrypoint-initdb.d/init.sql
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
volumes:
intelis_db_data: {}