From 95cf5c93741ce698e3d739a627054784cf34bd72 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 8 Oct 2024 15:32:06 +0200 Subject: [PATCH] add healthcheck binary --- README.md | 25 +++++++++++++++++++++ abra.sh | 1 + compose.yml | 19 +++++++++++----- healthcheck | Bin 0 -> 189696 bytes healthcheck.c | 50 +++++++++++++++++++++++++++++++++++++++++ healthcheck_Dockerfile | 13 +++++++++++ 6 files changed, 102 insertions(+), 6 deletions(-) create mode 100755 healthcheck create mode 100644 healthcheck.c create mode 100644 healthcheck_Dockerfile diff --git a/README.md b/README.md index 37c0933..a2c6087 100644 --- a/README.md +++ b/README.md @@ -23,3 +23,28 @@ Organize everything, on all platforms * `abra app deploy ` For more, see [`docs.coopcloud.tech`](https://docs.coopcloud.tech). + + +## Healthcheck + +Vikunja uses a docker [scratch](https://hub.docker.com/_/scratch/) image, that is completely empty, therefore it is necessary to copy a statically build healthcheck binary into the container to perform the healthcheck. + +To verify the binary in this recipe run this code: + +``` +# Set the source date epoch for reproducibility +export SOURCE_DATE_EPOCH=1640995200 +export DOCKER_BUILDKIT=1 + +# Build the Docker image +docker build --build-arg SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} -t healthcheck -f healthcheck_Dockerfile . + +# Create container, extract binary and remove the container +docker create --name healthcheck_builder healthcheck +docker cp healthcheck_builder:/app/healthcheck . +docker rm healthcheck_builder + +# Check if the build is reproducible by calculating hash +sha256sum healthcheck +``` +The sha256 checksum should be **c7c12a0eb019edd275c3f5a9302c70b2112941a8c0b9d9128d26c66a81a263c6** diff --git a/abra.sh b/abra.sh index c4561f3..c38f254 100644 --- a/abra.sh +++ b/abra.sh @@ -1 +1,2 @@ export CONFIG_YML_VERSION=v8 +export HEALTHCHECK_VERSION=v1 diff --git a/compose.yml b/compose.yml index 2f07635..7425261 100644 --- a/compose.yml +++ b/compose.yml @@ -47,6 +47,10 @@ services: configs: - source: config_yml target: /etc/vikunja/config.yml + - source: healthcheck + target: /healthcheck + mode: 555 + deploy: labels: - "traefik.enable=true" @@ -56,12 +60,12 @@ services: - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - "coop-cloud.${STACK_NAME}.version=1.0.0+0.24.2" - "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}" - #healthcheck: - # test: [ "CMD", "curl", "-f", "http://localhost:3456" ] - # interval: 30s - # timeout: 10s - # retries: 10 - # start_period: 1m + healthcheck: + test: [ "CMD", "/healthcheck"] + interval: 30s + timeout: 10s + retries: 10 + start_period: 1m redis: image: redis @@ -109,6 +113,9 @@ configs: name: ${STACK_NAME}_config_yml_${CONFIG_YML_VERSION} file: config.yml.tmpl template_driver: golang + healthcheck: + name: ${STACK_NAME}_healthcheck_${HEALTHCHECK_VERSION} + file: healthcheck secrets: db_password: diff --git a/healthcheck b/healthcheck new file mode 100755 index 0000000000000000000000000000000000000000..f372b5c66acf0b4f94f73717c0caf2b0d675bb12 GIT binary patch literal 189696 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 z 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 literal 0 HcmV?d00001 diff --git a/healthcheck.c b/healthcheck.c new file mode 100644 index 0000000..ccc76aa --- /dev/null +++ b/healthcheck.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include +#include +#include +#include + +int main() { + int sockfd; + struct sockaddr_in server_addr; + char request[] = "HEAD / HTTP/1.1\r\nHost: localhost\r\n\r\n"; + char response[1024]; + int received_bytes; + + sockfd = socket(AF_INET, SOCK_STREAM, 0); + if (sockfd < 0) { + perror("socket"); + return 1; + } + + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(3456); + server_addr.sin_addr.s_addr = inet_addr("127.0.0.1"); + + if (connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { + perror("connect"); + close(sockfd); + return 1; + } + + send(sockfd, request, strlen(request), 0); + + received_bytes = recv(sockfd, response, sizeof(response) - 1, 0); + if (received_bytes < 0) { + perror("recv"); + close(sockfd); + return 1; + } + + // Null-terminieren der empfangenen Bytes + response[received_bytes] = '\0'; + + // Statuscode extrahieren (erste Zeile enthält den Statuscode) + char *status_line = strtok(response, "\r\n"); + printf("Response: %s\n", status_line); + + close(sockfd); + return 0; +} diff --git a/healthcheck_Dockerfile b/healthcheck_Dockerfile new file mode 100644 index 0000000..1e4e6d6 --- /dev/null +++ b/healthcheck_Dockerfile @@ -0,0 +1,13 @@ +FROM alpine:latest + +ENV SOURCE_DATE_EPOCH=1640995200 + +RUN apk add --no-cache gcc musl-dev + +WORKDIR /app + +COPY healthcheck.c /app + +RUN gcc -o healthcheck healthcheck.c -static + +CMD ["./healthcheck"]