From bdd94d45191e62bc82cd66d31e6a8df9d22eb7ca Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Thu, 26 Oct 2023 10:22:03 +0200 Subject: [PATCH 1/4] Remove containers when stopping them This ensures that starting the setup again picks up the new version of the image during the next run. --- Makefile | 1 + src/Core/Makefile | 1 + src/Service/CloudFormation/Makefile | 1 + src/Service/CloudWatchLogs/Makefile | 1 + src/Service/DynamoDb/Makefile | 1 + src/Service/EventBridge/Makefile | 1 + src/Service/Iam/Makefile | 1 + src/Service/Kinesis/Makefile | 1 + src/Service/Kms/Makefile | 1 + src/Service/Lambda/Makefile | 1 + src/Service/Route53/Makefile | 1 + src/Service/S3/Makefile | 1 + src/Service/SecretsManager/Makefile | 2 +- src/Service/Sns/Makefile | 1 + src/Service/Sqs/Makefile | 1 + src/Service/Ssm/Makefile | 1 + 16 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6ff853b84..9dde77f67 100644 --- a/Makefile +++ b/Makefile @@ -32,6 +32,7 @@ start-docker-kms: stop-docker: clean docker stop async_aws_localstack || true + docker rm async_aws_localstack || true test: initialize ./vendor/bin/simple-phpunit diff --git a/src/Core/Makefile b/src/Core/Makefile index 4a0d812b5..da2042b46 100644 --- a/src/Core/Makefile +++ b/src/Core/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-sts || true + docker rm async_aws_localstack-sts || true diff --git a/src/Service/CloudFormation/Makefile b/src/Service/CloudFormation/Makefile index 5836e4755..fefffb819 100644 --- a/src/Service/CloudFormation/Makefile +++ b/src/Service/CloudFormation/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-cloudformation || true + docker rm async_aws_localstack-cloudformation || true diff --git a/src/Service/CloudWatchLogs/Makefile b/src/Service/CloudWatchLogs/Makefile index 4c35429c4..c5b00f127 100644 --- a/src/Service/CloudWatchLogs/Makefile +++ b/src/Service/CloudWatchLogs/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-logs || true + docker rm async_aws_localstack-logs || true diff --git a/src/Service/DynamoDb/Makefile b/src/Service/DynamoDb/Makefile index ecdf7a4ed..8093f265b 100644 --- a/src/Service/DynamoDb/Makefile +++ b/src/Service/DynamoDb/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-dynamodb || true + docker rm async_aws_localstack-dynamodb || true diff --git a/src/Service/EventBridge/Makefile b/src/Service/EventBridge/Makefile index 5e9dce1cf..23894f055 100644 --- a/src/Service/EventBridge/Makefile +++ b/src/Service/EventBridge/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-events || true + docker rm async_aws_localstack-events || true diff --git a/src/Service/Iam/Makefile b/src/Service/Iam/Makefile index 0140a59c2..591c3a857 100644 --- a/src/Service/Iam/Makefile +++ b/src/Service/Iam/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-iam || true + docker rm async_aws_localstack-iam || true diff --git a/src/Service/Kinesis/Makefile b/src/Service/Kinesis/Makefile index dc14f14d3..b1ee8156b 100644 --- a/src/Service/Kinesis/Makefile +++ b/src/Service/Kinesis/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-kinesis || true + docker rm async_aws_localstack-kinesis || true diff --git a/src/Service/Kms/Makefile b/src/Service/Kms/Makefile index ac7eb5c36..61cc60fb3 100644 --- a/src/Service/Kms/Makefile +++ b/src/Service/Kms/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-kms || true + docker rm async_aws_localstack-kms || true diff --git a/src/Service/Lambda/Makefile b/src/Service/Lambda/Makefile index 9ea3babe2..3fc0cef30 100644 --- a/src/Service/Lambda/Makefile +++ b/src/Service/Lambda/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_lambda || true + docker rm async_aws_lambda || true diff --git a/src/Service/Route53/Makefile b/src/Service/Route53/Makefile index 4c54222f5..311b6ebfc 100644 --- a/src/Service/Route53/Makefile +++ b/src/Service/Route53/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-route53 || true + docker rm async_aws_localstack-route53 || true diff --git a/src/Service/S3/Makefile b/src/Service/S3/Makefile index 32da20922..dfcbd7bfc 100644 --- a/src/Service/S3/Makefile +++ b/src/Service/S3/Makefile @@ -13,3 +13,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_s3-client || true + docker rm async_aws_s3-client || true diff --git a/src/Service/SecretsManager/Makefile b/src/Service/SecretsManager/Makefile index 090ffa630..7a1e81b27 100644 --- a/src/Service/SecretsManager/Makefile +++ b/src/Service/SecretsManager/Makefile @@ -14,4 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-secretsmanager || true - + docker rm async_aws_localstack-secretsmanager || true diff --git a/src/Service/Sns/Makefile b/src/Service/Sns/Makefile index a8c385353..05a4ca6ec 100644 --- a/src/Service/Sns/Makefile +++ b/src/Service/Sns/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-sns || true + docker rm async_aws_localstack-sns || true diff --git a/src/Service/Sqs/Makefile b/src/Service/Sqs/Makefile index e6b0353ef..2658740ef 100644 --- a/src/Service/Sqs/Makefile +++ b/src/Service/Sqs/Makefile @@ -12,3 +12,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_sqs || true + docker rm async_aws_sqs || true diff --git a/src/Service/Ssm/Makefile b/src/Service/Ssm/Makefile index f3b58ee47..f13f11281 100644 --- a/src/Service/Ssm/Makefile +++ b/src/Service/Ssm/Makefile @@ -14,3 +14,4 @@ test: initialize clean: stop-docker stop-docker: docker stop async_aws_localstack-ssm || true + docker rm async_aws_localstack-ssm || true From 427c48d08e820b4399a62a1de1f490c6f9760d6e Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Thu, 26 Oct 2023 12:00:42 +0200 Subject: [PATCH 2/4] Clean docker setups in components The components should be pulling the images they launch and not a different tag. And they should not try to start the shared localstack container when the image they use is not localstack. Instead, the should check for the shared container created by the root Makefile --- src/Service/Kms/Makefile | 4 ++-- src/Service/Lambda/Makefile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Service/Kms/Makefile b/src/Service/Kms/Makefile index 61cc60fb3..b2c7b5d23 100644 --- a/src/Service/Kms/Makefile +++ b/src/Service/Kms/Makefile @@ -2,9 +2,9 @@ initialize: start-docker start-docker: - docker start async_aws_localstack && exit 0 || \ + docker start async_aws_kms && exit 0 || \ docker start async_aws_localstack-kms && exit 0 || \ - docker pull localstack/localstack:0.14.2 && \ + docker pull nsmithuk/local-kms && \ docker run -d -p 4579:8080 --name async_aws_localstack-kms nsmithuk/local-kms && \ docker run --rm --link async_aws_localstack-kms:localstack martin/wait -c localstack:8080 diff --git a/src/Service/Lambda/Makefile b/src/Service/Lambda/Makefile index 3fc0cef30..486464108 100644 --- a/src/Service/Lambda/Makefile +++ b/src/Service/Lambda/Makefile @@ -5,7 +5,7 @@ ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) initialize: start-docker start-docker: docker start async_aws_lambda && exit 0 || \ - docker pull lambci/lambda && \ + docker pull lambci/lambda:nodejs12.x && \ docker run -d -p 9001:9001 -e DOCKER_LAMBDA_STAY_OPEN=1 -v "$(ROOT_DIR)/tests/fixtures/lambda":/var/task:ro,delegated --name async_aws_lambda lambci/lambda:nodejs12.x index.handler test: initialize From 453e1adb755920ae43c28f5eae14fc0a04245ada Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Thu, 26 Oct 2023 12:08:39 +0200 Subject: [PATCH 3/4] Clean all docker images of the root Makefile --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 9dde77f67..643f965c3 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,10 @@ start-docker-kms: stop-docker: clean docker stop async_aws_localstack || true docker rm async_aws_localstack || true + docker stop async_aws_s3 || true + docker rm async_aws_s3 || true + docker stop async_aws_kms || true + docker rm async_aws_kms || true test: initialize ./vendor/bin/simple-phpunit From fc26228b782aecf860d9a9743a3afe910bb16e23 Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Thu, 26 Oct 2023 16:31:52 +0200 Subject: [PATCH 4/4] Change the root Makefile to be consistent with services Instead of having `make stop-docker` triggering the `clean` command (which also triggers the cleaning of sub-services), it is now `clean` which depends on `stop-docker` of the root repo. This brings consistency with initialization commands. We now have a symmetry between `initialize`/`clean` and `start-docker`/`stop-docker`. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 643f965c3..0a56d3f0f 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ SUBCLEAN = $(addsuffix .clean,$(COMPONENTS)) SUBINITIALIZE = $(addsuffix .initialize,$(COMPONENTS)) .PHONY: clean $(SUBCLEAN) -clean: $(SUBCLEAN) +clean: stop-docker $(SUBCLEAN) $(SUBCLEAN): %.clean: $(MAKE) -C $* clean @@ -30,7 +30,7 @@ start-docker-kms: docker start async_aws_kms && exit 0 || \ docker run -d -p 4579:8080 --name async_aws_kms nsmithuk/local-kms -stop-docker: clean +stop-docker: docker stop async_aws_localstack || true docker rm async_aws_localstack || true docker stop async_aws_s3 || true