From 4b09d5fdc9c9d96cde40a63a891a5ad597c30788 Mon Sep 17 00:00:00 2001 From: Ricardo Sanz Date: Mon, 1 Apr 2024 18:20:23 +0200 Subject: [PATCH] Drop support for docker compose v1 --- .env.example | 8 -------- Makefile | 36 ++++++++++++++++++------------------ docker.mk | 24 ++++++++++++------------ readme.md | 2 +- 4 files changed, 31 insertions(+), 39 deletions(-) diff --git a/.env.example b/.env.example index 0b17c04..ac750bf 100644 --- a/.env.example +++ b/.env.example @@ -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 diff --git a/Makefile b/Makefile index 7ee405f..c066b5d 100644 --- a/Makefile +++ b/Makefile @@ -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. @@ -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. @@ -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 @@ -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 @@ -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/ diff --git a/docker.mk b/docker.mk index ec8de8f..d21b4db 100644 --- a/docker.mk +++ b/docker.mk @@ -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. @@ -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 @@ -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 @@ -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 %: diff --git a/readme.md b/readme.md index 57317c2..d92c20a 100644 --- a/readme.md +++ b/readme.md @@ -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**