Skip to content

Commit

Permalink
Drop support for docker compose v1
Browse files Browse the repository at this point in the history
  • Loading branch information
rsanzante committed Apr 1, 2024
1 parent b924156 commit 4b09d5f
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 39 deletions.
8 changes: 0 additions & 8 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,6 @@ DB_HOST=mariadb
DB_PORT=3306
DB_DRIVER=mysql


### --- Docker Compose ---
# V1
# DOCKER_COMPOSE_CMD=docker-compose
# V2
DOCKER_COMPOSE_CMD="docker compose"


### --- MARIADB ----

MARIADB_TAG=10.11-3.28.0
Expand Down
36 changes: 18 additions & 18 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,27 +17,27 @@ info:
## test : Run Unit tests. Pass the path to a file or directory with the Unit test. Example: make test web/modules/contrib/devel/tests/src/Unit
.PHONY: test
test:
$(DOCKER_COMPOSE_CMD) exec php phpunit $(filter-out $@,$(MAKECMDGOALS))
docker compose exec php phpunit $(filter-out $@,$(MAKECMDGOALS))

## behat : Run project Behat tests
.PHONY: behat
behat:
$(DOCKER_COMPOSE_CMD) exec php ${BEHAT} --colors
docker compose exec php ${BEHAT} --colors

## ngrok : Setup a ngrok tunnel to make the site available
.PHONY: ngrok
ngrok:
$(DOCKER_COMPOSE_CMD) -f compose.yml -f compose.override.yml -f compose.ngrok.yml up -d && $(DOCKER_COMPOSE_CMD) exec php curl http://ngrok:4040/api/tunnels | grep -Po "https"://[^\"]+
docker compose -f compose.yml -f compose.override.yml -f compose.ngrok.yml up -d && docker compose exec php curl http://ngrok:4040/api/tunnels | grep -Po "https"://[^\"]+

## ngrok-stop : Stop the created ngrok tunnel
.PHONY: ngrok-stop
ngrok-stop:
$(DOCKER_COMPOSE_CMD) -f compose.yml -f compose.override.yml -f compose.ngrok.yml stop ngrok && $(DOCKER_COMPOSE_CMD) -f compose.yml -f compose.override.yml -f compose.ngrok.yml rm -fsv ngrok
docker compose -f compose.yml -f compose.override.yml -f compose.ngrok.yml stop ngrok && docker compose -f compose.yml -f compose.override.yml -f compose.ngrok.yml rm -fsv ngrok

## frontend : Generate frontend assets like compiling scss
.PHONY: frontend
frontend:
$(DOCKER_COMPOSE_CMD) exec -w ${FRONTEND_BASE_PATH}/$(frontend_target) node sh ${DOCKER_PROJECT_ROOT}/scripts/frontend-build.sh $(filter-out $@,$(MAKECMDGOALS))
docker compose exec -w ${FRONTEND_BASE_PATH}/$(frontend_target) node sh ${DOCKER_PROJECT_ROOT}/scripts/frontend-build.sh $(filter-out $@,$(MAKECMDGOALS))

## backstopjs-reference : Generate BackstopJS reference files
## An optional parameter is available to generate only scenarios matching it.
Expand All @@ -48,7 +48,7 @@ frontend:
## Example: make backstopjs_type=environment/pro backstopjs-test
.PHONY: backstopjs-reference
backstopjs-reference:
$(DOCKER_COMPOSE_CMD) exec -T backstopjs sh -c "cd tests/${backstopjs_type}/backstopjs && backstop reference --filter='$(filter-out $@,$(MAKECMDGOALS))'"
docker compose exec -T backstopjs sh -c "cd tests/${backstopjs_type}/backstopjs && backstop reference --filter='$(filter-out $@,$(MAKECMDGOALS))'"

## backstopjs-test : Run BackstopJS tests
## An optional parameter is available to generate only scenarios matching it.
Expand All @@ -59,7 +59,7 @@ backstopjs-reference:
## Example: make backstopjs_type=environment/pro backstopjs-test
.PHONY: backstopjs-test
backstopjs-test:
$(DOCKER_COMPOSE_CMD) exec -T backstopjs sh -c "cd tests/${backstopjs_type}/backstopjs && backstop test --filter='$(filter-out $@,$(MAKECMDGOALS))'"
docker compose exec -T backstopjs sh -c "cd tests/${backstopjs_type}/backstopjs && backstop test --filter='$(filter-out $@,$(MAKECMDGOALS))'"

## setup-init : Prepares the site
.PHONY: setup-init
Expand All @@ -69,18 +69,18 @@ setup-init:
cp compose.override.yml.dist compose.override.yml
cp web/sites/${SITE}/example.settings.local.php web/sites/${SITE}/settings.local.php
cp web/sites/${SITE}/example.local.drush.yml web/sites/${SITE}/local.drush.yml
$(DOCKER_COMPOSE_CMD) up -d
$(DOCKER_COMPOSE_CMD) exec -T php composer install
$(DOCKER_COMPOSE_CMD) run -e'PHP_ERROR_REPORTING=E_ALL & ~E_DEPRECATED' --rm -T php 'vendor/bin/grumphp' 'git:init'
docker compose up -d
docker compose exec -T php composer install
docker compose run -e'PHP_ERROR_REPORTING=E_ALL & ~E_DEPRECATED' --rm -T php 'vendor/bin/grumphp' 'git:init'

## setup : Prepares the site and installs it using the Drupal configuration files
.PHONY: setup
setup:
make setup-init
$(DOCKER_COMPOSE_CMD) exec -T php drush @${SITE}.local si ${PROFILE} --existing-config --sites-subdir=${SITE} -y
$(DOCKER_COMPOSE_CMD) exec -T php drush @${SITE}.local cim -y
$(DOCKER_COMPOSE_CMD) exec -T php drush @${SITE}.local cr
$(DOCKER_COMPOSE_CMD) exec -T php drush @${SITE}.local uli
docker compose exec -T php drush @${SITE}.local si ${PROFILE} --existing-config --sites-subdir=${SITE} -y
docker compose exec -T php drush @${SITE}.local cim -y
docker compose exec -T php drush @${SITE}.local cr
docker compose exec -T php drush @${SITE}.local uli

## setup-from-environment : Prepares the site and loads it with data from the reference site
.PHONY: setup-from-environment
Expand All @@ -96,16 +96,16 @@ solr-sync:
## solr-rebuild : Re-creates the Solr core
.PHONY: solr-rebuild
solr-rebuild:
$(DOCKER_COMPOSE_CMD) stop solr && $(DOCKER_COMPOSE_CMD) rm -f solr && $(DOCKER_COMPOSE_CMD) up -d solr && make solr-sync
docker compose stop solr && docker compose rm -f solr && docker compose up -d solr && make solr-sync

## pa11y: Run pa11y tests
.PHONY: pa11y
pa11y:
$(DOCKER_COMPOSE_CMD) run --rm -T pa11y $(filter-out $@,$(MAKECMDGOALS))
docker compose run --rm -T pa11y $(filter-out $@,$(MAKECMDGOALS))

## lighthouse: Run lighthouse tests
.PHONY: lighthouse
lighthouse:
$(DOCKER_COMPOSE_CMD) exec -T lighthouse lhci autorun || true
$(DOCKER_COMPOSE_CMD) exec -T lighthouse sh -c 'tar -cf - *.json *.html' | tar -xvf - -C reports/lighthouse/
docker compose exec -T lighthouse lhci autorun || true
docker compose exec -T lighthouse sh -c 'tar -cf - *.json *.html' | tar -xvf - -C reports/lighthouse/
ls -l reports/lighthouse/
24 changes: 12 additions & 12 deletions docker.mk
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ help :
.PHONY: up
up:
@echo "Starting up containers for $(PROJECT_NAME)..."
$(DOCKER_COMPOSE_CMD) pull
$(DOCKER_COMPOSE_CMD) up -d --remove-orphans
docker compose pull
docker compose up -d --remove-orphans

.PHONY: mutagen
mutagen:
$(DOCKER_COMPOSE_CMD) up -d mutagen
docker compose up -d mutagen
mutagen project start -f mutagen/config.yml

## down : Stop containers.
Expand All @@ -32,13 +32,13 @@ down: stop
.PHONY: start
start:
@echo "Starting containers for $(PROJECT_NAME) from where you left off..."
@$(DOCKER_COMPOSE_CMD) start
@docker compose start

## stop : Stop containers.
.PHONY: stop
stop:
@echo "Stopping containers for $(PROJECT_NAME)..."
@$(DOCKER_COMPOSE_CMD) stop
@docker compose stop

## prune : Remove containers and their volumes.
## You can optionally pass an argument with the service name to prune single container
Expand All @@ -47,7 +47,7 @@ stop:
.PHONY: prune
prune:
@echo "Removing containers for $(PROJECT_NAME)..."
@$(DOCKER_COMPOSE_CMD) down -v $(filter-out $@,$(MAKECMDGOALS))
@docker compose down -v $(filter-out $@,$(MAKECMDGOALS))

## ps : List running containers.
.PHONY: ps
Expand Down Expand Up @@ -80,23 +80,23 @@ drush:
## logs nginx php : View `nginx` and `php` containers logs.
.PHONY: logs
logs:
@$(DOCKER_COMPOSE_CMD) logs -f $(filter-out $@,$(MAKECMDGOALS))
@docker compose logs -f $(filter-out $@,$(MAKECMDGOALS))

## xdebug : Enable xdebug.
.PHONY: xdebug
xdebug:
@echo "Enabling xdebug in $(PROJECT_NAME)."
@echo "¡¡CAUTION!! X-debug will only work if you have correctly configured compose.xdebug.override.yml file."
$(DOCKER_COMPOSE_CMD) stop php
$(DOCKER_COMPOSE_CMD) pull php
$(DOCKER_COMPOSE_CMD) -f compose.yml -f compose.override.yml -f compose.xdebug.override.yml up -d php
docker compose stop php
docker compose pull php
docker compose -f compose.yml -f compose.override.yml -f compose.xdebug.override.yml up -d php

## xdebug-disable : Disable xdebug.
.PHONY: xdebug-stop
xdebug-stop:
@echo "Disabling xdebug in $(PROJECT_NAME)."
$(DOCKER_COMPOSE_CMD) stop php
$(DOCKER_COMPOSE_CMD) -f compose.yml -f compose.override.yml up -d php
docker compose stop php
docker compose -f compose.yml -f compose.override.yml up -d php

# https://stackoverflow.com/a/6273809/1826109
%:
Expand Down
2 changes: 1 addition & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ https://github.com/Metadrop/drupal-boilerplate/assets/776453/2b3d53c6-e2bf-4c48-
## Requisites

- [Docker](https://docs.docker.com/get-docker/)
- [Docker Compose](https://docs.docker.com/compose/install/) with release 3.0.1 or previous. After 3.0.2 by default Docker Compose V2, [included in Docker](https://www.docker.com/blog/announcing-compose-v2-general-availability/), is used. The variable `DOCKER_COMPOSE_CMD=docker compose` can be used to select Docker Compose V1 if required.
- [Docker Compose](https://docs.docker.com/compose/install/), version [V2](https://www.docker.com/blog/announcing-compose-v2-general-availability/).

**Optionally**

Expand Down

0 comments on commit 4b09d5f

Please sign in to comment.