-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathdocker-compose.yml
128 lines (124 loc) · 3.72 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
119
120
121
122
123
124
125
126
127
128
version: "2.1"
services:
# Web container
web:
image: doofinder-magento2:php-${PHP_VERSION}-composer-${COMPOSER_VERSION}
build:
context: docker
args:
PHP_VERSION: ${PHP_VERSION}
COMPOSER_VERSION: ${COMPOSER_VERSION}
secrets:
- composer_auth_username
- composer_auth_password
depends_on:
db:
condition: service_healthy
elasticsearch:
condition: service_healthy
environment:
MYSQL_HOST: db
ELASTICSEARCH_HOST: elasticsearch
MAGENTO_EDITION: ${MAGENTO_EDITION}
MAGENTO_VERSION: ${MAGENTO_VERSION}
MAGENTO_BASE_URL: ${MAGENTO_BASE_URL}
MAGENTO_ADMIN_FRONTNAME: ${MAGENTO_ADMIN_FRONTNAME}
MAGENTO_ADMIN_FIRST_NAME: ${MAGENTO_ADMIN_FIRST_NAME}
MAGENTO_ADMIN_LAST_NAME: ${MAGENTO_ADMIN_LAST_NAME}
MAGENTO_ADMIN_EMAIL: ${MAGENTO_ADMIN_EMAIL}
MAGENTO_ADMIN_USER: ${MAGENTO_ADMIN_USER}
MAGENTO_ADMIN_PASSWORD: ${MAGENTO_ADMIN_PASSWORD}
MAGENTO_LOCALE: ${MAGENTO_LOCALE}
MAGENTO_CURRENCY: ${MAGENTO_CURRENCY}
MAGENTO_TIMEZONE: ${MAGENTO_TIMEZONE}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
APACHE_RUN_USER: "#1000"
APACHE_RUN_GROUP: "#1000"
WEB_ALIAS_DOMAIN: ${MAGENTO_BASE_URL}
WEB_DOCUMENT_ROOT: /app/pub
PHP_MAX_EXECUTION_TIME: 300
DOOFINDER_ADMIN_URL: ${DOOFINDER_ADMIN_URL}
DOOFINDER_PLUGINS_URL_FORMAT: ${DOOFINDER_PLUGINS_URL_FORMAT}
DOOFINDER_SEARCH_URL_FORMAT: ${DOOFINDER_SEARCH_URL_FORMAT}
DOOFINDER_API_URL_FORMAT: ${DOOFINDER_API_URL_FORMAT}
DOOFINDER_SCRIPT_URL_FORMAT: ${DOOFINDER_SCRIPT_URL_FORMAT}
#XDEBUG_CONFIG: "client_host=${XDEBUG_HOST} idekey=${XDEBUG_KEY} mode=develop,debug start_with_request=yes"
volumes:
- ./app:/app
- ./Doofinder:/app/app/code/Doofinder
ports:
- "9012:80"
- "4012:443"
secrets:
- composer_auth_username
- composer_auth_password
setup:
image: doofinder-magento2:php-${PHP_VERSION}-composer-${COMPOSER_VERSION}
pull_policy: never
profiles:
- setup
environment:
MAGENTO_EDITION: ${MAGENTO_EDITION}
MAGENTO_VERSION: ${MAGENTO_VERSION}
volumes:
- ./app:/app
- ~/.composer/cache:/root/.composer/cache
secrets:
- composer_auth_username
- composer_auth_password
entrypoint: /usr/local/bin/magento_download
# MySQL container
db:
image: mysql:5.7
volumes:
- magento-db:/var/lib/mysql
ports:
- 3312:3306
healthcheck:
test: "mysqladmin -h localhost -p${MYSQL_PASSWORD} ping --silent"
interval: 30s
timeout: 30s
retries: 3
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
# Elasticsearch container
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
healthcheck:
test:
[
"CMD-SHELL",
"curl --silent --fail localhost:9200/_cluster/health || exit 1",
]
interval: 30s
timeout: 30s
retries: 3
# Varnish container
# varnish:
# image: varnish:stable
# environment:
# VARNISH_BACKEND_HOST: web
# VARNISH_BACKEND_PORT: 80
# VARNISH_STORAGE: "malloc,256m"
# ports:
# - "9012:80"
# depends_on:
# - web
# volumes:
# - ./default.vcl:/etc/varnish/default.vcl
secrets:
composer_auth_username:
environment: COMPOSER_AUTH_USERNAME
composer_auth_password:
environment: COMPOSER_AUTH_PASSWORD
volumes:
magento-db: