From dc3fd58c723aa7be2a414baf20067b2c87cd5f43 Mon Sep 17 00:00:00 2001 From: Radical Date: Mon, 5 May 2025 13:11:07 +0200 Subject: [PATCH] ci: add ci and docker files --- .woodpecker/build-and-publish.yml | 25 +++++++++++++++++++++++++ Dockerfile | 11 +++++++++++ entrypoint.sh | 26 ++++++++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 .woodpecker/build-and-publish.yml create mode 100644 Dockerfile create mode 100755 entrypoint.sh diff --git a/.woodpecker/build-and-publish.yml b/.woodpecker/build-and-publish.yml new file mode 100644 index 0000000..98c7614 --- /dev/null +++ b/.woodpecker/build-and-publish.yml @@ -0,0 +1,25 @@ + +steps: + - name: build + image: node:alpine + commands: + - npm install -g pnpm + - pnpm install + - pnpm build + when: + - event: push + - event: pull_request + + - name: container-build-and-publish + image: docker + commands: + - docker login --username radical --password $PASSWORD git.gorb.app + - docker buildx build --platform linux/amd64,linux/arm64 --rm --push -t git.gorb.app/gorb/frontend:main . + environment: + PASSWORD: + from_secret: docker_password + volumes: + - /var/run/podman/podman.sock:/var/run/docker.sock + when: + - branch: main + event: push diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fd05b2c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM node:alpine + +COPY ./.output /web + +COPY entrypoint.sh /usr/bin/entrypoint.sh + +RUN useradd --create-home --home-dir /web gorb + +USER gorb + +ENTRYPOINT ["/usr/bin/entrypoint.sh"] \ No newline at end of file diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..57ad056 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +if [ ! -d "/web/logs" ]; then + mkdir /web/logs +fi + +rotate_log() { + LOGFILE="$1" + BASENAME=$(basename "$LOGFILE" .log) + DIRNAME=$(dirname "$LOGFILE") + + if [ -f "$LOGFILE" ]; then + # Find the next available number + i=1 + while [ -f "$DIRNAME/${BASENAME}.${i}.log.gz" ]; do + i=$((i + 1)) + done + + gzip "$LOGFILE" + mv "${LOGFILE}.gz" "$DIRNAME/${BASENAME}.${i}.log.gz" + fi +} + +rotate_log "/web/logs/frontend.log" + +/usr/bin/node /web/server/index.mjs 2>&1 | tee /gorb/logs/frontend.log