From bdd7c85e9e28669011638b1e16045d6b544aae7f Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 16 May 2025 07:37:32 +0200 Subject: [PATCH 1/3] feat: Add Dockerfile and docker-compose --- Dockerfile | 31 +++++++++++++++++++++++++++++++ docker-compose.yaml | 19 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yaml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8a3c7c8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +FROM golang:1-alpine AS builder + +WORKDIR /app + +# Copy go mod files first for better caching +COPY go.mod go.sum ./ +RUN go mod download + +# Copy source code +COPY . . + +# Build the application +RUN CGO_ENABLED=0 GOOS=linux go build -o lnproxy ./cmd/http-relay + +# Create a minimal runtime image +FROM alpine:3 + +RUN apk --no-cache add ca-certificates tzdata && \ + adduser -D -h /app lnproxy + +WORKDIR /app +USER lnproxy + +# Copy the binary from the builder stage +COPY --from=builder --chown=lnproxy:lnproxy /app/lnproxy /app/ + +# Expose the default port +EXPOSE 4747 + +# Set the entrypoint +ENTRYPOINT ["/app/lnproxy"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..124688e --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,19 @@ +services: + lnproxy-relay: + build: + context: . + dockerfile: Dockerfile + container_name: lnproxy-relay + restart: unless-stopped + ports: + - "4747:4747" + volumes: + - ./lnproxy.macaroon:/app/lnproxy.macaroon:ro + - ${LND_CERT_PATH:-~/.lnd/tls.cert}:/app/tls.cert:ro + environment: + - TZ=UTC + command: > + -lnd=${LND_HOST:-https://127.0.0.1:8080} + -lnd-cert=/app/tls.cert + -port=4747 + /app/lnproxy.macaroon From 6a226b12966d5d28b86e2cf182941f7346fe1a1a Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 16 May 2025 07:41:15 +0200 Subject: [PATCH 2/3] ci: add Docker workflow Builds and publishes the Docker image to GitHub Container Registry on push to master. --- .github/workflows/docker.yaml | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/docker.yaml diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml new file mode 100644 index 0000000..996c4e6 --- /dev/null +++ b/.github/workflows/docker.yaml @@ -0,0 +1,44 @@ +name: image build +on: + push: + branches: + - master + +env: + REGISTRY: ghcr.io + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to the Container registry + uses: docker/login-action@6d4b68b490aef8836e8fb5e50ee7b3bdfa5894f0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@418e4b98bf2841bd337d0b24fe63cb36dc8afa55 + with: + images: ${{ env.REGISTRY }}/${{ github.repository }} + + - name: Build and push Docker image + uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max From fc5ee0866596c4353cd14cbf7ad0fb2aa0fb22ed Mon Sep 17 00:00:00 2001 From: m0wer Date: Fri, 16 May 2025 07:41:54 +0200 Subject: [PATCH 3/3] DELETE ME temporary until merge --- .github/workflows/docker.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 996c4e6..ba1bce4 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -3,6 +3,7 @@ on: push: branches: - master + - docker env: REGISTRY: ghcr.io