From 78efb83703c7bf2e75bd2286fcd29833f5c0a8d5 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 15 May 2025 11:44:42 +0200 Subject: [PATCH 01/26] All-in-One --- Dockerfile.AIO | 42 ++++++++++++++++++++++++++++++++++++++++++ Makefile | 20 +++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 Dockerfile.AIO diff --git a/Dockerfile.AIO b/Dockerfile.AIO new file mode 100644 index 0000000..cdb2634 --- /dev/null +++ b/Dockerfile.AIO @@ -0,0 +1,42 @@ +ARG CONTEXT=dev +ARG CADDY_IMAGE_VERSION=2.3.0 + +FROM caddy:${CADDY_IMAGE_VERSION}-alpine as base + +ARG CONTEXT +ARG CADDY_IMAGE_VERSION + +WORKDIR /app + +## Installs +RUN apk update && apk add --no-cache jq gettext + +COPY caddy_base.json /caddy_base.json +COPY entrypoint /entrypoint +COPY certs /certs + +LABEL org.opencontainers.image.title="OpenSlides Proxy" +LABEL org.opencontainers.image.description="The proxy is the entrypoint for traffic going into an OpenSlides instance." +LABEL org.opencontainers.image.licenses="MIT" +LABEL org.opencontainers.image.source="https://github.com/OpenSlides/OpenSlides/tree/main/proxy" + + +ENTRYPOINT ["/entrypoint"] +CMD ["caddy", "run", "--config", "/etc/caddy/config.json"] + + +# Development Image + +FROM base as dev + +ENV ENABLE_LOCAL_HTTPS=1 + + +# Testing Image + +FROM base as tests + + +# Production Image + +FROM base as prod \ No newline at end of file diff --git a/Makefile b/Makefile index 519433b..982512a 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,21 @@ + +build-aio: + @if [ -z "${submodule}" ] ; then \ + echo "Please provide the name of the submodule service to build (submodule=)"; \ + exit 1; \ + fi + + @if [ "${context}" != "prod" -a "${context}" != "dev" -a "${context}" != "tests" ] ; then \ + echo "Please provide a context for this build (context= , possible options: prod, dev, tests)"; \ + exit 1; \ + fi + + echo "Building submodule '${submodule}' for ${context} context" + + @docker build -f ./Dockerfile.AIO ./ --tag openslides-${submodule}-${context} --build-arg CONTEXT=${context} --target ${context} ${args} + build-dev: ./make-localhost-cert.sh - docker build -t openslides-proxy-dev -f Dockerfile.dev . + make build-aio context=dev submodule=proxy + +# docker build -t openslides-proxy-dev -f Dockerfile.dev . From 5b0f6438fd9df5288cc429130b94b6d101d5188f Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 19 May 2025 09:53:30 +0200 Subject: [PATCH 02/26] Implementing and testing Test-Image --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 982512a..119e697 100644 --- a/Makefile +++ b/Makefile @@ -19,3 +19,6 @@ build-dev: make build-aio context=dev submodule=proxy # docker build -t openslides-proxy-dev -f Dockerfile.dev . + +run-tests: + echo "Proxy has no tests" \ No newline at end of file From 13430d83da0467beef44c21c0a3c15f67319113d Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 22 May 2025 08:16:30 +0200 Subject: [PATCH 03/26] Prod as default context & small bug fixes --- Dockerfile.AIO | 2 +- dev/run-tests.sh | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 dev/run-tests.sh diff --git a/Dockerfile.AIO b/Dockerfile.AIO index cdb2634..560ecc3 100644 --- a/Dockerfile.AIO +++ b/Dockerfile.AIO @@ -1,4 +1,4 @@ -ARG CONTEXT=dev +ARG CONTEXT=prod ARG CADDY_IMAGE_VERSION=2.3.0 FROM caddy:${CADDY_IMAGE_VERSION}-alpine as base diff --git a/dev/run-tests.sh b/dev/run-tests.sh new file mode 100644 index 0000000..8c612be --- /dev/null +++ b/dev/run-tests.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +echo "########################################################################" +echo "###################### Proxy has no tests ##############################" +echo "########################################################################" From a499bbbab134d5fc802e7588fd60d82bcf23376d Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 22 May 2025 14:28:11 +0200 Subject: [PATCH 04/26] Bugfixes and Draft PR --- Dockerfile.AIO | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Dockerfile.AIO b/Dockerfile.AIO index 560ecc3..1b3441d 100644 --- a/Dockerfile.AIO +++ b/Dockerfile.AIO @@ -39,4 +39,10 @@ FROM base as tests # Production Image -FROM base as prod \ No newline at end of file +FROM base as prod + +# Add appuser +RUN adduser --system --no-create-home appuser +RUN chown appuser /app/ + +USER appuser \ No newline at end of file From ba6176dede7a08cfbd2a6bf88b380fd13a7a0564 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 2 Jun 2025 09:53:18 +0200 Subject: [PATCH 05/26] Bug Fixes --- Dockerfile.AIO | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.AIO b/Dockerfile.AIO index 1b3441d..ec31081 100644 --- a/Dockerfile.AIO +++ b/Dockerfile.AIO @@ -44,5 +44,6 @@ FROM base as prod # Add appuser RUN adduser --system --no-create-home appuser RUN chown appuser /app/ +RUN chown appuser /etc/caddy/ USER appuser \ No newline at end of file From 6eabb8e7b59e9054f171058fa237ec3dc9c1a819 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 2 Jun 2025 11:53:26 +0200 Subject: [PATCH 06/26] Removed old Dockerfiles --- Dockerfile | 44 +++++++++++++++++++++++++++++++++++++++----- Dockerfile.AIO | 49 ------------------------------------------------- Dockerfile.dev | 12 ------------ Makefile | 24 +++++++----------------- 4 files changed, 46 insertions(+), 83 deletions(-) delete mode 100644 Dockerfile.AIO delete mode 100644 Dockerfile.dev diff --git a/Dockerfile b/Dockerfile index 461a141..ec31081 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,15 +1,49 @@ -FROM caddy:2.3.0-alpine +ARG CONTEXT=prod +ARG CADDY_IMAGE_VERSION=2.3.0 -LABEL org.opencontainers.image.title="OpenSlides Proxy" -LABEL org.opencontainers.image.description="The proxy is the entrypoint for traffic going into an OpenSlides instance." -LABEL org.opencontainers.image.licenses="MIT" -LABEL org.opencontainers.image.source="https://github.com/OpenSlides/OpenSlides/tree/main/proxy" +FROM caddy:${CADDY_IMAGE_VERSION}-alpine as base + +ARG CONTEXT +ARG CADDY_IMAGE_VERSION + +WORKDIR /app +## Installs RUN apk update && apk add --no-cache jq gettext COPY caddy_base.json /caddy_base.json COPY entrypoint /entrypoint COPY certs /certs +LABEL org.opencontainers.image.title="OpenSlides Proxy" +LABEL org.opencontainers.image.description="The proxy is the entrypoint for traffic going into an OpenSlides instance." +LABEL org.opencontainers.image.licenses="MIT" +LABEL org.opencontainers.image.source="https://github.com/OpenSlides/OpenSlides/tree/main/proxy" + + ENTRYPOINT ["/entrypoint"] CMD ["caddy", "run", "--config", "/etc/caddy/config.json"] + + +# Development Image + +FROM base as dev + +ENV ENABLE_LOCAL_HTTPS=1 + + +# Testing Image + +FROM base as tests + + +# Production Image + +FROM base as prod + +# Add appuser +RUN adduser --system --no-create-home appuser +RUN chown appuser /app/ +RUN chown appuser /etc/caddy/ + +USER appuser \ No newline at end of file diff --git a/Dockerfile.AIO b/Dockerfile.AIO deleted file mode 100644 index ec31081..0000000 --- a/Dockerfile.AIO +++ /dev/null @@ -1,49 +0,0 @@ -ARG CONTEXT=prod -ARG CADDY_IMAGE_VERSION=2.3.0 - -FROM caddy:${CADDY_IMAGE_VERSION}-alpine as base - -ARG CONTEXT -ARG CADDY_IMAGE_VERSION - -WORKDIR /app - -## Installs -RUN apk update && apk add --no-cache jq gettext - -COPY caddy_base.json /caddy_base.json -COPY entrypoint /entrypoint -COPY certs /certs - -LABEL org.opencontainers.image.title="OpenSlides Proxy" -LABEL org.opencontainers.image.description="The proxy is the entrypoint for traffic going into an OpenSlides instance." -LABEL org.opencontainers.image.licenses="MIT" -LABEL org.opencontainers.image.source="https://github.com/OpenSlides/OpenSlides/tree/main/proxy" - - -ENTRYPOINT ["/entrypoint"] -CMD ["caddy", "run", "--config", "/etc/caddy/config.json"] - - -# Development Image - -FROM base as dev - -ENV ENABLE_LOCAL_HTTPS=1 - - -# Testing Image - -FROM base as tests - - -# Production Image - -FROM base as prod - -# Add appuser -RUN adduser --system --no-create-home appuser -RUN chown appuser /app/ -RUN chown appuser /etc/caddy/ - -USER appuser \ No newline at end of file diff --git a/Dockerfile.dev b/Dockerfile.dev deleted file mode 100644 index c9ec9d7..0000000 --- a/Dockerfile.dev +++ /dev/null @@ -1,12 +0,0 @@ -FROM caddy:2.3.0-alpine - -RUN apk update && apk add --no-cache jq gettext - -COPY caddy_base.json /caddy_base.json -COPY entrypoint /entrypoint -COPY certs /certs - -ENV ENABLE_LOCAL_HTTPS=1 - -ENTRYPOINT ["/entrypoint"] -CMD ["caddy", "run", "--config", "/etc/caddy/config.json"] diff --git a/Makefile b/Makefile index 119e697..b2f41a7 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,14 @@ - -build-aio: - @if [ -z "${submodule}" ] ; then \ - echo "Please provide the name of the submodule service to build (submodule=)"; \ - exit 1; \ - fi - - @if [ "${context}" != "prod" -a "${context}" != "dev" -a "${context}" != "tests" ] ; then \ - echo "Please provide a context for this build (context= , possible options: prod, dev, tests)"; \ - exit 1; \ - fi - - echo "Building submodule '${submodule}' for ${context} context" - - @docker build -f ./Dockerfile.AIO ./ --tag openslides-${submodule}-${context} --build-arg CONTEXT=${context} --target ${context} ${args} +SERVICE=proxy build-dev: ./make-localhost-cert.sh - make build-aio context=dev submodule=proxy + bash ../dev/scripts/makefile/build-service.sh $(SERVICE) dev + +build-prod: + bash ../dev/scripts/makefile/build-service.sh $(SERVICE) prod -# docker build -t openslides-proxy-dev -f Dockerfile.dev . +build-test: + bash ../dev/scripts/makefile/build-service.sh $(SERVICE) tests run-tests: echo "Proxy has no tests" \ No newline at end of file From f3df78cbb69bd6f38e1d1ae11b242f93dacd4118 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 3 Jun 2025 13:27:15 +0200 Subject: [PATCH 07/26] Dockerfile Linting --- Dockerfile | 18 +++++++++++++----- dev/command.sh | 4 ++++ 2 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 dev/command.sh diff --git a/Dockerfile b/Dockerfile index ec31081..968de00 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,10 @@ ARG CADDY_IMAGE_VERSION WORKDIR /app +## Context-based setup +### Add context value as a helper env variable +ENV ${CONTEXT}=1 + ## Installs RUN apk update && apk add --no-cache jq gettext @@ -15,14 +19,17 @@ COPY caddy_base.json /caddy_base.json COPY entrypoint /entrypoint COPY certs /certs +## External Information LABEL org.opencontainers.image.title="OpenSlides Proxy" LABEL org.opencontainers.image.description="The proxy is the entrypoint for traffic going into an OpenSlides instance." LABEL org.opencontainers.image.licenses="MIT" LABEL org.opencontainers.image.source="https://github.com/OpenSlides/OpenSlides/tree/main/proxy" - +## Command ENTRYPOINT ["/entrypoint"] -CMD ["caddy", "run", "--config", "/etc/caddy/config.json"] +COPY ./dev/command.sh ./ +RUN chmod +x command.sh +CMD ["./command.sh"] # Development Image @@ -42,8 +49,9 @@ FROM base as tests FROM base as prod # Add appuser -RUN adduser --system --no-create-home appuser -RUN chown appuser /app/ -RUN chown appuser /etc/caddy/ +RUN adduser --system --no-create-home appuser && \ + chown appuser /app/ && \ + chown appuser /etc/caddy/ && \ + chown appuser /config/caddy/ USER appuser \ No newline at end of file diff --git a/dev/command.sh b/dev/command.sh new file mode 100644 index 0000000..ec45872 --- /dev/null +++ b/dev/command.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Same command for all contexts +caddy run --config /etc/caddy/config.json \ No newline at end of file From 0a9514cedfde1676f6c67b1e6d27ac5c6ea0a194 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 5 Jun 2025 11:08:15 +0200 Subject: [PATCH 08/26] Dependabot --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 968de00..cda36f0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,8 @@ ARG CONTEXT=prod -ARG CADDY_IMAGE_VERSION=2.3.0 -FROM caddy:${CADDY_IMAGE_VERSION}-alpine as base +FROM caddy:2.3.0-alpine as base ARG CONTEXT -ARG CADDY_IMAGE_VERSION WORKDIR /app From b11de7f5eea559cb862f3b4f32fa6c33090a0004 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 10 Jun 2025 16:02:23 +0200 Subject: [PATCH 09/26] Docker Compose Update --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cda36f0..eea979e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,9 @@ WORKDIR /app ENV ${CONTEXT}=1 ## Installs -RUN apk update && apk add --no-cache jq gettext +RUN apk update && apk add --no-cache \ + jq \ + gettext COPY caddy_base.json /caddy_base.json COPY entrypoint /entrypoint From 64829dca48a73e89f72378740f329ceaffdf7256 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 26 Jun 2025 11:02:01 +0200 Subject: [PATCH 10/26] PR fixes #2 --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index eea979e..4c6d04f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,8 +7,9 @@ ARG CONTEXT WORKDIR /app ## Context-based setup -### Add context value as a helper env variable -ENV ${CONTEXT}=1 +# Used for easy target differentiation +ARG ${CONTEXT}=1 +ENV APP_CONTEXT=${CONTEXT} ## Installs RUN apk update && apk add --no-cache \ From 812b6f3f36d1987cd6ea5c44fe88aac790547872 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 26 Jun 2025 13:49:03 +0200 Subject: [PATCH 11/26] Additional PR fixes --- Dockerfile | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4c6d04f..a70c9b5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,13 +2,9 @@ ARG CONTEXT=prod FROM caddy:2.3.0-alpine as base +## Setup ARG CONTEXT - WORKDIR /app - -## Context-based setup -# Used for easy target differentiation -ARG ${CONTEXT}=1 ENV APP_CONTEXT=${CONTEXT} ## Installs @@ -25,26 +21,23 @@ LABEL org.opencontainers.image.title="OpenSlides Proxy" LABEL org.opencontainers.image.description="The proxy is the entrypoint for traffic going into an OpenSlides instance." LABEL org.opencontainers.image.licenses="MIT" LABEL org.opencontainers.image.source="https://github.com/OpenSlides/OpenSlides/tree/main/proxy" - + ## Command ENTRYPOINT ["/entrypoint"] COPY ./dev/command.sh ./ RUN chmod +x command.sh CMD ["./command.sh"] - # Development Image FROM base as dev ENV ENABLE_LOCAL_HTTPS=1 - # Testing Image FROM base as tests - # Production Image FROM base as prod @@ -55,4 +48,4 @@ RUN adduser --system --no-create-home appuser && \ chown appuser /etc/caddy/ && \ chown appuser /config/caddy/ -USER appuser \ No newline at end of file +USER appuser From 4969e2b7eec04181767473f9216a2af6d5307b64 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 1 Jul 2025 11:36:23 +0200 Subject: [PATCH 12/26] Makefile Rework --- Makefile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index b2f41a7..24ba399 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,18 @@ -SERVICE=proxy +override SERVICE=proxy +override MAKEFILE_PATH=../dev/scripts/makefile +override DOCKER_COMPOSE_FILE= -build-dev: - ./make-localhost-cert.sh - bash ../dev/scripts/makefile/build-service.sh $(SERVICE) dev +# Build images for different contexts -build-prod: - bash ../dev/scripts/makefile/build-service.sh $(SERVICE) prod +build build-prod build-dev build-tests: + bash $(MAKEFILE_PATH)/make-build-service.sh $@ $(SERVICE) -build-test: - bash ../dev/scripts/makefile/build-service.sh $(SERVICE) tests +# Development + +run-dev run-dev-standalone run-dev-attached run-dev-detached run-dev-help run-dev-stop run-dev-clean run-dev-exec run-dev-enter: + bash $(MAKEFILE_PATH)/make-run-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" + +# Tests run-tests: - echo "Proxy has no tests" \ No newline at end of file + bash dev/run-tests.sh \ No newline at end of file From f676a81b191a4dbffbae329f14e76ccaf045104f Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 3 Jul 2025 11:57:17 +0200 Subject: [PATCH 13/26] Expandend run-dev-... matching --- Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 24ba399..3013d57 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,10 @@ build build-prod build-dev build-tests: # Development -run-dev run-dev-standalone run-dev-attached run-dev-detached run-dev-help run-dev-stop run-dev-clean run-dev-exec run-dev-enter: - bash $(MAKEFILE_PATH)/make-run-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" +.PHONY: run-dev% + +run-dev%: + bash $(MAKEFILE_PATH)/make-run-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" "$(USED_SHELL)" # Tests From 66d8790bf709fc18da3fbb913e988a5613b1c834 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 3 Jul 2025 17:09:29 +0200 Subject: [PATCH 14/26] Adding linting script and reworking test script --- Makefile | 5 ++++- dev/run-tests.sh | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 3013d57..067f169 100644 --- a/Makefile +++ b/Makefile @@ -17,4 +17,7 @@ run-dev%: # Tests run-tests: - bash dev/run-tests.sh \ No newline at end of file + bash dev/run-tests.sh + +run-lint: + bash dev/run-lint.sh -l \ No newline at end of file diff --git a/dev/run-tests.sh b/dev/run-tests.sh index 8c612be..0837f97 100644 --- a/dev/run-tests.sh +++ b/dev/run-tests.sh @@ -3,3 +3,9 @@ echo "########################################################################" echo "###################### Proxy has no tests ##############################" echo "########################################################################" + +# Setup +LOCAL_PWD=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +# Linters +bash "$LOCAL_PWD"/run-lint.sh -s -c || CATCH=1 From e7fda8f997c460443c81d46dc5d80b1e89b561fc Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 3 Jul 2025 17:11:03 +0200 Subject: [PATCH 15/26] Lint Script --- dev/run-lint.sh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 dev/run-lint.sh diff --git a/dev/run-lint.sh b/dev/run-lint.sh new file mode 100644 index 0000000..99dcf00 --- /dev/null +++ b/dev/run-lint.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +echo "########################################################################" +echo "####################### Proxy has no linters ###########################" +echo "########################################################################" From 8caff9ded1023792d6b7c429fd7ab6e9fb3ea38c Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 8 Jul 2025 16:33:26 +0200 Subject: [PATCH 16/26] Remove reference to main repository build-service script --- Makefile | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index b2f41a7..0a305aa 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,13 @@ -SERVICE=proxy - -build-dev: - ./make-localhost-cert.sh - bash ../dev/scripts/makefile/build-service.sh $(SERVICE) dev +SERVICE=proxy build-prod: - bash ../dev/scripts/makefile/build-service.sh $(SERVICE) prod + docker build ./ --tag "openslides-$(SERVICE)" --build-arg CONTEXT="prod" --target "prod" + +build-dev: + docker build ./ --tag "openslides-$(SERVICE)-dev" --build-arg CONTEXT="dev" --target "dev" build-test: - bash ../dev/scripts/makefile/build-service.sh $(SERVICE) tests + docker build ./ --tag "openslides-$(SERVICE)-tests" --build-arg CONTEXT="tests" --target "tests" run-tests: echo "Proxy has no tests" \ No newline at end of file From c7e2e2a647d854ef44cbe04e5ccf5662e276d29e Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 14 Jul 2025 09:59:10 +0200 Subject: [PATCH 17/26] Remove reference to dev build script from makefile targets --- Makefile | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 067f169..e22d494 100644 --- a/Makefile +++ b/Makefile @@ -4,8 +4,14 @@ override DOCKER_COMPOSE_FILE= # Build images for different contexts -build build-prod build-dev build-tests: - bash $(MAKEFILE_PATH)/make-build-service.sh $@ $(SERVICE) +build-prod: + docker build ./ --tag "openslides-$(SERVICE)" --build-arg CONTEXT="prod" --target "prod" + +build-dev: + docker build ./ --tag "openslides-$(SERVICE)-dev" --build-arg CONTEXT="dev" --target "dev" + +build-test: + docker build ./ --tag "openslides-$(SERVICE)-tests" --build-arg CONTEXT="tests" --target "tests" # Development From 894a541ceb4c935cc7f024e3ca7e6f41fb9f1a71 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 14 Jul 2025 15:33:11 +0200 Subject: [PATCH 18/26] Fixing lint and test script, updating Makefiles --- Makefile | 2 +- dev/run-tests.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e22d494..d320438 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ build-prod: build-dev: docker build ./ --tag "openslides-$(SERVICE)-dev" --build-arg CONTEXT="dev" --target "dev" -build-test: +build-tests: docker build ./ --tag "openslides-$(SERVICE)-tests" --build-arg CONTEXT="tests" --target "tests" # Development diff --git a/dev/run-tests.sh b/dev/run-tests.sh index 0837f97..4500904 100644 --- a/dev/run-tests.sh +++ b/dev/run-tests.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + echo "########################################################################" echo "###################### Proxy has no tests ##############################" echo "########################################################################" @@ -8,4 +10,4 @@ echo "########################################################################" LOCAL_PWD=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) # Linters -bash "$LOCAL_PWD"/run-lint.sh -s -c || CATCH=1 +bash "$LOCAL_PWD"/run-lint.sh From 30794c9fdb01ef0ef6f3a12b6b7ada9b9e241b82 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 14 Jul 2025 16:00:48 +0200 Subject: [PATCH 19/26] Rename run-dev to dev and run-lint to lin --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index d320438..2c87dd7 100644 --- a/Makefile +++ b/Makefile @@ -15,15 +15,15 @@ build-tests: # Development -.PHONY: run-dev% +.PHONY: dev% -run-dev%: - bash $(MAKEFILE_PATH)/make-run-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" "$(USED_SHELL)" +dev%: + bash $(MAKEFILE_PATH)/make-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" "$(USED_SHELL)" # Tests run-tests: bash dev/run-tests.sh -run-lint: +lint: bash dev/run-lint.sh -l \ No newline at end of file From 3148949ac71a9c75e92f82342f42e199d01fecca Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 15 Jul 2025 09:14:30 +0200 Subject: [PATCH 20/26] Remove PHONY and Target Wildcard to allow autocompletion --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 2c87dd7..9ddbf25 100644 --- a/Makefile +++ b/Makefile @@ -15,9 +15,7 @@ build-tests: # Development -.PHONY: dev% - -dev%: +dev dev-help dev-standalone dev-detached dev-attached dev-stop dev-exec dev-enter: bash $(MAKEFILE_PATH)/make-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" "$(USED_SHELL)" # Tests From fb5cadeffe781d4c2cdc574075336cc65aaa0f9c Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 15 Jul 2025 15:13:09 +0200 Subject: [PATCH 21/26] Adding PHONY again to support dev target. Revamp make-dev.sh by implementing reusable functions --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 9ddbf25..a929b75 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,8 @@ build-tests: # Development +.PHONY: dev + dev dev-help dev-standalone dev-detached dev-attached dev-stop dev-exec dev-enter: bash $(MAKEFILE_PATH)/make-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" "$(USED_SHELL)" From e01ab9c29a5d97245324b9cc3afe1b674a1d0213 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 17 Jul 2025 16:10:40 +0200 Subject: [PATCH 22/26] Move dev maketargets from services to main. Expanded make-dev.sh to work with main repository context as well as adapt to service related constraints and requirements --- Makefile | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Makefile b/Makefile index a929b75..4d33e15 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,4 @@ override SERVICE=proxy -override MAKEFILE_PATH=../dev/scripts/makefile -override DOCKER_COMPOSE_FILE= # Build images for different contexts @@ -13,13 +11,6 @@ build-dev: build-tests: docker build ./ --tag "openslides-$(SERVICE)-tests" --build-arg CONTEXT="tests" --target "tests" -# Development - -.PHONY: dev - -dev dev-help dev-standalone dev-detached dev-attached dev-stop dev-exec dev-enter: - bash $(MAKEFILE_PATH)/make-dev.sh "$@" "$(SERVICE)" "$(DOCKER_COMPOSE_FILE)" "$(ARGS)" "$(USED_SHELL)" - # Tests run-tests: From 24f4ef923c838ca6c7180e76f0e4d73b0fe3e52f Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 21 Jul 2025 17:02:40 +0200 Subject: [PATCH 23/26] Implemented --no-cache flag for docker builds via dev make target --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 4d33e15..ec8fddb 100644 --- a/Makefile +++ b/Makefile @@ -3,13 +3,13 @@ override SERVICE=proxy # Build images for different contexts build-prod: - docker build ./ --tag "openslides-$(SERVICE)" --build-arg CONTEXT="prod" --target "prod" + docker build ./ $(ARGS) --tag "openslides-$(SERVICE)" --build-arg CONTEXT="prod" --target "prod" build-dev: - docker build ./ --tag "openslides-$(SERVICE)-dev" --build-arg CONTEXT="dev" --target "dev" + docker build ./ $(ARGS) --tag "openslides-$(SERVICE)-dev" --build-arg CONTEXT="dev" --target "dev" build-tests: - docker build ./ --tag "openslides-$(SERVICE)-tests" --build-arg CONTEXT="tests" --target "tests" + docker build ./ $(ARGS) --tag "openslides-$(SERVICE)-tests" --build-arg CONTEXT="tests" --target "tests" # Tests From d31af4fc57d7aecfce5fcd2bc0bb78d69449b4ff Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Mon, 11 Aug 2025 10:19:30 +0200 Subject: [PATCH 24/26] Adding newlines --- Makefile | 2 +- dev/command.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ec8fddb..50c00e2 100644 --- a/Makefile +++ b/Makefile @@ -17,4 +17,4 @@ run-tests: bash dev/run-tests.sh lint: - bash dev/run-lint.sh -l \ No newline at end of file + bash dev/run-lint.sh -l diff --git a/dev/command.sh b/dev/command.sh index ec45872..bcd5658 100644 --- a/dev/command.sh +++ b/dev/command.sh @@ -1,4 +1,4 @@ #!/bin/sh # Same command for all contexts -caddy run --config /etc/caddy/config.json \ No newline at end of file +caddy run --config /etc/caddy/config.json From 1cbd39147aa0dbc47a5d07b4e72d5e039c605611 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Thu, 21 Aug 2025 09:35:33 +0200 Subject: [PATCH 25/26] Rename as to AS in Dockerfiles --- Dockerfile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index a70c9b5..8ebd9f4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ ARG CONTEXT=prod -FROM caddy:2.3.0-alpine as base +FROM caddy:2.3.0-alpine AS base ## Setup ARG CONTEXT @@ -30,17 +30,17 @@ CMD ["./command.sh"] # Development Image -FROM base as dev +FROM base AS dev ENV ENABLE_LOCAL_HTTPS=1 # Testing Image -FROM base as tests +FROM base AS tests # Production Image -FROM base as prod +FROM base AS prod # Add appuser RUN adduser --system --no-create-home appuser && \ From 0541ab26bcf42c9760520f12f1f37d83b502e319 Mon Sep 17 00:00:00 2001 From: Jan Malte Behrens Date: Tue, 9 Sep 2025 12:47:31 +0200 Subject: [PATCH 26/26] Supress closing container messages and replace complicated local pwd path with simpler one --- dev/run-tests.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/run-tests.sh b/dev/run-tests.sh index 4500904..43060af 100644 --- a/dev/run-tests.sh +++ b/dev/run-tests.sh @@ -7,7 +7,7 @@ echo "###################### Proxy has no tests ##############################" echo "########################################################################" # Setup -LOCAL_PWD=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +LOCAL_PWD=$(dirname "$0") # Linters bash "$LOCAL_PWD"/run-lint.sh