-
Notifications
You must be signed in to change notification settings - Fork 112
/
docker-compose.yaml
105 lines (97 loc) · 3.71 KB
/
docker-compose.yaml
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
services:
redis:
image: redis:alpine
command: [ redis-server, --maxmemory 128mb, --maxmemory-policy volatile-lru, --save "" ]
rabbitmq:
image: rabbitmq:alpine
volumes:
- pimcore-rabbitmq:/var/lib/rabbitmq/
db:
image: mariadb:10.11
working_dir: /application
command: [ mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_general_ci, --innodb-file-per-table=1 ]
volumes:
- pimcore-database:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=ROOT
- MYSQL_DATABASE=pimcore
- MYSQL_USER=pimcore
- MYSQL_PASSWORD=pimcore
healthcheck:
# The service is considered healthy when:
# - connection to pimcore db can be established, and
# - we can run a simple SQL query.
test: [ "CMD-SHELL", "mysql -h db -u$$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE -e 'SHOW TABLES;'" ]
interval: 10s
retries: 6
start_period: 1m
timeout: 3s
nginx:
image: nginx:stable-alpine
ports:
- "80:80"
volumes:
- .:/var/www/html:ro
- ./.docker/nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- php
php:
#user: '1000:1000' # set to your uid:gid
image: pimcore/pimcore:php8.3-debug-latest
environment:
COMPOSER_HOME: /var/www/html
PHP_IDE_CONFIG: serverName=localhost
# Feed installer configuration via ENV variables.
# See: https://pimcore.com/docs/pimcore/current/Development_Documentation/Getting_Started/Advanced_Installation_Topics.html#page_Advanced-Installation-Topics
PIMCORE_INSTALL_MYSQL_USERNAME: pimcore
PIMCORE_INSTALL_MYSQL_PASSWORD: pimcore
PIMCORE_INSTALL_MYSQL_PORT: 3306
PIMCORE_INSTALL_MYSQL_HOST_SOCKET: db
PIMCORE_INSTALL_MYSQL_DATABASE: pimcore
depends_on:
db:
condition: service_healthy
volumes:
- .:/var/www/html
- ./.docker/messenger.yaml:/var/www/html/config/packages/messenger.yaml:ro
supervisord:
#user: '1000:1000' # set to your uid:gid
image: pimcore/pimcore:php8.3-supervisord-latest
depends_on:
rabbitmq:
condition: service_started
db:
condition: service_healthy
volumes:
- .:/var/www/html
- ./.docker/messenger.yaml:/var/www/html/config/packages/messenger.yaml:ro
- ./.docker/supervisord.conf:/etc/supervisor/conf.d/pimcore.conf:ro
# The following two services are used for testing.
# We restrict these services to the test profile only, so we don't spin them up with every `docker compose up`.
# See: https://docs.docker.com/compose/profiles/
test-db:
profiles: [ 'test' ]
extends: db
volumes:
- pimcore-test-database:/var/lib/mysql
test-php:
profiles: [ 'test' ]
extends: php
environment:
APP_ENV: test
PIMCORE_TEST_DB_DSN: ${PIMCORE_TEST_DB_DSN:-mysql://pimcore:pimcore@test-db/pimcore}
PIMCORE_INSTALL_ADMIN_USERNAME: pimcore
PIMCORE_INSTALL_ADMIN_PASSWORD: pimcore
PIMCORE_INSTALL_MYSQL_HOST_SOCKET: test-db
depends_on:
test-db:
condition: service_healthy
volumes:
- pimcore-test-var:/var/www/html/var
- pimcore-test-public-var:/var/www/html/public/var
volumes:
pimcore-database:
pimcore-rabbitmq:
pimcore-test-database:
pimcore-test-var:
pimcore-test-public-var: