-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
118 lines (108 loc) · 3.15 KB
/
docker-compose.yml
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
106
107
108
109
110
111
112
113
114
115
116
117
118
version: '3'
services:
apache:
build:
context: ./docker/apache
container_name: ${APP_NAME}_apache
depends_on:
mysql:
condition: service_healthy
ports:
- ${APP_PORT}:80
volumes:
- ./docker/apache/vhosts:/etc/apache2/sites-enabled
- .:${APP_ROOT}
nginx:
image: nginx:latest
container_name: ${APP_NAME}_reverse_proxy
volumes:
- ./docker/nginx/servers:/etc/nginx/conf.d
ports:
- ${REVERSE_PROXY_PORT}:80
php:
build:
context: ./docker/php
image: eic-php-fpm:7.4
container_name: ${APP_NAME}_php
working_dir: /app
volumes:
- .:${APP_ROOT}
- ./docker/php/dev.ini:/usr/local/etc/php/conf.d/dev.ini
- ./docker/bin/mhsendmail:/usr/local/bin/mhsendmail
depends_on:
mysql:
condition: service_healthy
env_file:
- .env
mysql:
image: percona/percona-server:5.7
container_name: ${APP_NAME}_mysql
ports:
- ${DATABASE_PORT}:3306
command: --innodb-log-file-size=1G --max_allowed_packet=1G --innodb-buffer-pool-size=512M --wait_timeout=3000 --net_write_timeout=3000 --log_error_verbosity=3
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
volumes:
- mysql_data:/var/lib/mysql
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost", "-uroot", "--silent" ]
interval: 2s
timeout: 10s
retries: 5
e2e:
image: cypress
build: ./e2e
container_name: ${APP_NAME}_cypress
tty: true
depends_on:
- apache
volumes:
- ./e2e/cypress:/app/cypress
- ./e2e/cypress.json:/app/cypress.json
# note: inside e2e container, the network allows accessing
# "apache" host under name "apache"
# so "curl http://apache" would return whatever the webserver
# in the "apache" container is cooking
# see https://docs.docker.com/compose/networking/
environment:
- CYPRESS_baseUrl=${CYPRESS_BASE_URL}
# mount the host directory e2e/cypress and the file e2e/cypress.json as
# volumes within the container
# this means that:
# 1. anything that Cypress writes to these folders (e.g., screenshots,
# videos) appears also on the Docker host's filesystem
# 2. any change that the developer applies to Cypress files on the host
# machine immediately takes effect within the e2e container (no docker
# rebuild required).
env_file:
- .env
mailhog:
image: mailhog/mailhog
container_name: ${APP_NAME}_mailhog
ports:
- 1025
- ${MAILHOG_PORT}:8025
solr:
image: solr:8
container_name: ${APP_NAME}_solr
ports:
- ${SOLR_PORT}:8983
environment:
- JAVA_OPTS=-Xmx4g -Xms4g
volumes:
- solr_data:/var/solr
- ./docker/solr/8.x:/opt/solr/server/solr/configsets/data_driven_schema_configs/conf
- ./docker/solr/8.x:/opt/solr/server/solr/configsets/_default/conf
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- ${SEARCH_INDEX}
tika:
image: apache/tika:2.7.0.0
container_name: ${APP_NAME}_tika
redis:
image: redis:alpine
container_name: ${APP_NAME}_redis
volumes:
mysql_data:
solr_data: