commit f0cb4adf38f6e66746b75759a215ee886c0087e8 Author: melody Date: Sun Jul 27 23:51:21 2025 +0200 init diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml new file mode 100644 index 0000000..78556b2 --- /dev/null +++ b/.forgejo/workflows/build.yml @@ -0,0 +1,50 @@ +name: Auto Build caddy-shork Docker Container +enable-email-notifications: true + +on: + workflow_dispatch: + schedule: + - cron: '12 */3 * * *' + +jobs: + build: + runs-on: dind + + env: + PACKAGE: caddy-shork + DOCKER_REGISTRY: git.shork.ch + REGISTRY_USER: docker-images + COMMIT_AUTHOR_NAME: "forgejo-runner" + COMMIT_AUTHOR_EMAIL: "forgejo-runner@shork.ch" + COMMIT_MESSAGE: "Update build metadata" + CADDY_APPS: "" + REBUILD_ALL_X_DAYS: 14 + + steps: + - name: Install dependencies + shell: sh + run: | + echo "Run because of ${{ github.event_name }}" + apk add --no-cache git nodejs npm bash sed curl jq xcaddy + + - uses: actions/checkout@v3 + + - name: Start Docker daemon + run: | + dockerd-entrypoint.sh & + for i in {1..10}; do + docker info && break + echo "Waiting for Docker daemon..." + sleep 3 + done + docker info || { echo "Docker daemon failed to start."; exit 1; } + + - name: Build and push Docker image + run: | + xcaddy_cmd="xcaddy build" + for app in $CADDY_APPS; do xcaddy_cmd+=" --with $app"; done + escaped_cmd=$(printf '%s\n' "$xcaddy_cmd" | sed 's/[\/&]/\\&/g') + sed -i "s|\$XCADDY_CMD|$escaped_cmd|g" Dockerfile + docker build --build-arg NPROC=1 -t $DOCKER_REGISTRY/$REGISTRY_USER/$PACKAGE:latest . + echo "${{ secrets.DOCKER_PASSWORD }}" | docker login $DOCKER_REGISTRY -u $REGISTRY_USER --password-stdin + docker push --all-tags $DOCKER_REGISTRY/$REGISTRY_USER/$PACKAGE diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f395963 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,7 @@ +FROM caddy:builder AS builder + +$XCADDY_CMD + +FROM caddy:latest + +COPY --from=builder /usr/bin/caddy /usr/bin/caddy