Skip to content

Commit 9e2b1f0

Browse files
authored
speed up docker builds (#92)
1 parent 87d4407 commit 9e2b1f0

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

.github/workflows/docker-publish.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ env:
2323

2424
jobs:
2525
build:
26-
runs-on: ubuntu-latest
26+
runs-on: ubuntu-latest-xl
2727
permissions:
2828
contents: read
2929
packages: write
@@ -67,6 +67,17 @@ jobs:
6767
with:
6868
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
6969

70+
- name: Go Build Cache for Docker
71+
uses: actions/cache@v4
72+
with:
73+
path: go-build-cache
74+
key: ${{ runner.os }}-go-build-cache-${{ hashFiles('**/go.sum') }}
75+
76+
- name: Inject go-build-cache
77+
uses: reproducible-containers/buildkit-cache-dance@4b2444fec0c0fb9dbf175a96c094720a692ef810 # v2.1.4
78+
with:
79+
cache-source: go-build-cache
80+
7081
# Build and push Docker image with Buildx (don't push on PR)
7182
# https://github.com/docker/build-push-action
7283
- name: Build and push Docker image

Dockerfile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@ FROM golang:1.23.7 AS build
55
ARG VERSION
66
# Set the working directory
77
WORKDIR /build
8-
# Copy the current directory contents into the working directory
9-
COPY . .
8+
9+
RUN go env -w GOMODCACHE=/root/.cache/go-build
10+
1011
# Install dependencies
11-
RUN go mod download
12+
COPY go.mod go.sum ./
13+
RUN --mount=type=cache,target=/root/.cache/go-build go mod download
14+
15+
COPY . ./
1216
# Build the server
13-
RUN CGO_ENABLED=0 go build -ldflags="-s -w -X main.version=${VERSION} -X main.commit=$(git rev-parse HEAD) -X main.date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
17+
RUN --mount=type=cache,target=/root/.cache/go-build CGO_ENABLED=0 go build -ldflags="-s -w -X main.version=${VERSION} -X main.commit=$(git rev-parse HEAD) -X main.date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
1418
-o github-mcp-server cmd/github-mcp-server/main.go
19+
1520
# Make a stage to run the app
1621
FROM gcr.io/distroless/base-debian12
1722
# Set the working directory

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy