version: '2.3' x-lagoon-project: # Lagoon project name (leave `&lagoon-project` when you edit this) &lagoon-project ipdc x-volumes: &default-volumes # Define all volumes you would like to have real-time mounted into the docker containers volumes: - .:/app:delegated x-environment: &default-environment LAGOON_PROJECT: *lagoon-project # Route that should be used locally, if you are using pygmy, this route *must* end with .docker.amazee.io LAGOON_ROUTE: nginx.ipdc.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' services: cli: # cli container, will be used for executing composer and any local commands (drush, drupal, etc.) build: context: . dockerfile: Dockerfile.cli image: *lagoon-project # 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 << : *default-volumes # loads the defined volumes from the top user: root volumes_from: # mount the ssh-agent from the pygmy or cachalot ssh-agent - container:amazeeio-ssh-agent environment: << : *default-environment # loads the defined environment variables from the top nginx: build: context: . dockerfile: Dockerfile.nginx args: CLI_IMAGE: *lagoon-project # 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 << : *default-volumes # loads the defined volumes from the top << : *default-user # uses the defined user from top 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: nginx.ipdc.docker.amazee.io networks: - amazeeio-network - default php: build: context: . dockerfile: Dockerfile.php args: CLI_IMAGE: *lagoon-project 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 << : *default-volumes # loads the defined volumes from the top << : *default-user # uses the defined user from top 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: amazeeio/mariadb-drupal labels: lagoon.type: mariadb 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 redis: image: amazeeio/redis labels: lagoon.type: redis << : *default-user # uses the defined user from top environment: << : *default-environment solr: image: amazeeio/solr:6.6-drupal labels: lagoon.type: solr << : *default-user # uses the defined user from top ports: - "8983" # exposes the port 8983 with a random local port, find it with `docker-compose port solr 8983` environment: << : *default-environment # varnish: # image: amazeeio/varnish-drupal # labels: # lagoon.type: varnish # links: # - nginx # links varnish to the nginx in this docker-compose project, or it would try to connect to any nginx running in docker # << : *default-user # uses the defined user from top # environment: # << : *default-environment # VARNISH_BYPASS: "true" # by default we bypass varnish, change to 'false' or remove in order to tell varnish to cache if possible # networks: # - amazeeio-network # - default networks: amazeeio-network: external: true