This repository has been archived by the owner on Sep 11, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdocker-compose.yml
131 lines (120 loc) · 4.49 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
129
130
131
x-volumes:
&default-volumes
# Define all volumes you would like to have real-time mounted into the docker containers
volumes:
- .:/app:delegated ### Local overrides to mount host filesystem. Automatically removed in CI and PROD.
- files:/app/web/sites/default/files
x-environment:
&default-environment
# Route that should be used locally, if you are using pygmy, this route *must* end with .docker.amazee.io
LAGOON_ROUTE: &default-url http://${COMPOSE_PROJECT_NAME:-drupal9-full}.docker.amazee.io
# Uncomment if you like to have the system behave like in production
#LAGOON_ENVIRONMENT_TYPE: production
# Uncomment to enable xdebug and then restart via `docker-compose up -d`
#XDEBUG_ENABLE: "true"
x-user:
&default-user
# The default user under which the containers should run. Change this if you are on linux and run with another user than id `1000`
user: '1000'
volumes:
files:
{}
db:
{}
search:
{}
services:
cli: # cli container, will be used for executing composer and any local commands (drush, drupal, etc.)
build:
context: .
dockerfile: lagoon/cli.dockerfile
image: &cli-image ${COMPOSE_PROJECT_NAME:-drupal9-full}-cli # this image will be reused as `CLI_IMAGE` in subsequent Docker builds
labels:
# Lagoon Labels
lagoon.type: cli-persistent
lagoon.persistent.name: nginx # mount the persistent storage of nginx into this container
lagoon.persistent: /app/web/sites/default/files/ # location where the persistent storage should be mounted
lando.type: php-cli-drupal
<< : *default-volumes # loads the defined volumes from the top
user: root
volumes_from: ### mount the ssh-agent from the pygmy or cachalot ssh-agent. Automatically removed in CI.
- container:amazeeio-ssh-agent ### Local overrides to mount host SSH keys. Automatically removed in CI.
environment:
<< : *default-environment # loads the defined environment variables from the top
nginx:
build:
context: .
dockerfile: lagoon/nginx.dockerfile
args:
CLI_IMAGE: *cli-image # Inject the name of the cli image
labels:
lagoon.type: nginx-php-persistent
lagoon.persistent: /app/web/sites/default/files/ # define where the persistent storage should be mounted too
lando.type: nginx-drupal
<< : [*default-volumes, *default-user]
depends_on:
- cli # basically just tells docker-compose to build the cli first
environment:
<< : *default-environment # loads the defined environment variables from the top
LAGOON_LOCALDEV_URL: *default-url
networks:
- amazeeio-network
- default
php:
build:
context: .
dockerfile: lagoon/php.dockerfile
args:
CLI_IMAGE: *cli-image
labels:
lagoon.type: nginx-php-persistent
lagoon.name: nginx # we want this service be part of the nginx pod in Lagoon
lagoon.persistent: /app/web/sites/default/files/ # define where the persistent storage should be mounted too
lando.type: php-fpm
<< : [*default-volumes, *default-user]
depends_on:
- cli # basically just tells docker-compose to build the cli first
environment:
<< : *default-environment # loads the defined environment variables from the top
mariadb:
image: uselagoon/mariadb-10.6-drupal:latest
labels:
lagoon.type: mariadb
lando.type: mariadb-drupal
ports:
- "3306" # exposes the port 3306 with a random local port, find it with `docker-compose port mariadb 3306`
<< : *default-user # uses the defined user from top
environment:
<< : *default-environment
volumes:
- db:/var/lib/mysql
solr:
build:
context: .
dockerfile: lagoon/solr.dockerfile
args:
CLI_IMAGE: *cli-image
labels:
lagoon.type: solr
lando.type: solr-drupal
ports:
- "8983" # exposes the port 8983 with a random local port, find it with `docker-compose port solr 8983`
environment:
<< : *default-environment
depends_on:
- cli # basically just tells docker-compose to build the cli first
volumes:
- search:/var/solr
redis:
image: uselagoon/redis-6:latest
labels:
lagoon.type: redis
lando.type: redis
ports:
- "6379" # exposes the port 6379 with a random local port, find it with `docker-compose port redis 6379`
<< : *default-user # uses the defined user from top
environment:
<< : *default-environment
networks:
amazeeio-network:
external: true