diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml new file mode 100644 index 0000000..4dd5d41 --- /dev/null +++ b/.forgejo/workflows/build.yaml @@ -0,0 +1,33 @@ +name: Build & Push Docker Image + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Forgejo Registry + uses: docker/login-action@v3 + with: + registry: git.moritz.run + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64 + tags: git.moritz.run/helios/helios-remote:latest + cache-from: type=registry,ref=git.moritz.run/helios/helios-remote:cache + cache-to: type=registry,ref=git.moritz.run/helios/helios-remote:cache,mode=max diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5d70a63 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# Build stage +FROM rust:1.82-alpine AS builder + +RUN apk add --no-cache musl-dev + +WORKDIR /app +COPY . . + +RUN cargo build --release --bin helios-remote-relay + +# Runtime stage +FROM alpine:3.20 + +RUN apk add --no-cache ca-certificates + +WORKDIR /app +COPY --from=builder /app/target/release/helios-remote-relay . + +EXPOSE 8080 + +CMD ["./helios-remote-relay"]