Skip to content

Commit 7296770

Browse files
authored
Merge pull request #19 from buildkite/feat_chainguard_static_image
feat: migrate to ko and chainguard static image for leaner docker images
2 parents e8cec11 + bb7871f commit 7296770

4 files changed

Lines changed: 38 additions & 65 deletions

File tree

.buildkite/Dockerfile.build

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
11
FROM public.ecr.aws/docker/library/golang:1.24.2@sha256:1ecc479bc712a6bdb56df3e346e33edcc141f469f82840bab9f4bc2bc41bf91d
22

3-
COPY --from=goreleaser/goreleaser-pro:v2.8.2@sha256:62bff5f26c37e1615265ae9c1106fbabc427882fd442c67a89db4c513d31b326 /usr/bin/goreleaser /usr/local/bin/goreleaser
4-
5-
# Install Docker CLI for GoReleaser
6-
RUN apt-get update && \
7-
apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release && \
8-
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \
9-
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \
10-
apt-get update && \
11-
apt-get install -y docker-ce-cli
3+
COPY --from=goreleaser/goreleaser-pro:v2.8.2@sha256:62bff5f26c37e1615265ae9c1106fbabc427882fd442c67a89db4c513d31b326 /usr/bin/goreleaser /usr/local/bin/goreleaser

.goreleaser.yaml

Lines changed: 37 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,28 +16,50 @@ before:
1616
- go generate ./...
1717

1818
builds:
19-
- binary: buildkite-mcp-server
19+
- id: buildkite-mcp-server
20+
binary: buildkite-mcp-server
2021
main: ./cmd/buildkite-mcp-server/main.go
2122
env:
2223
- CGO_ENABLED=0
2324
goos:
2425
- linux
2526
- windows
2627
- darwin
27-
28-
dockers:
29-
- image_templates:
30-
- "buildkite/buildkite-mcp-server:{{ .Version }}"
31-
- "buildkite/buildkite-mcp-server:latest"
32-
dockerfile: Dockerfile
33-
build_flag_templates:
34-
- "--pull"
35-
- "--label=org.opencontainers.image.created={{.Date}}"
36-
- "--label=org.opencontainers.image.title={{.ProjectName}}"
37-
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
38-
- "--label=org.opencontainers.image.version={{.Version}}"
39-
use: buildx
40-
28+
goarch:
29+
- amd64
30+
- arm64
31+
goamd64:
32+
- v2
33+
ldflags:
34+
- -s -w -X main.version={{.Version}}
35+
flags:
36+
- -trimpath
37+
kos:
38+
- repositories:
39+
- ghcr.io/buildkie/buildkite-mcp-server
40+
build: buildkite-mcp-server
41+
main: ./cmd/buildkite-mcp-server/
42+
creation_time: "{{.CommitTimestamp}}"
43+
base_image: 'cgr.dev/chainguard/static:latest@sha256:1ff7590cbc50eaaa917c34b092de0720d307f67d6d795e4f749a0b80a2e95a2c'
44+
tags:
45+
- '{{.Version}}'
46+
- latest
47+
labels:
48+
org.opencontainers.image.authors: Buildkite Inc. https://buildkite.com
49+
org.opencontainers.image.source: https://github.com/buildkite/buildkite-mcp-server
50+
org.opencontainers.image.created: "{{.Date}}"
51+
org.opencontainers.image.title: "{{.ProjectName}}"
52+
org.opencontainers.image.revision: "{{.FullCommit}}"
53+
org.opencontainers.image.version: "{{.Version}}"
54+
bare: true
55+
preserve_import_paths: false
56+
# FIXME: We use GOOS and -split in our pipeline which is causing issues with the ko integration
57+
# so we disable it here when the GOOS is set to something other than linux. This avoids
58+
# the ko build to fail when running on macos or windows.
59+
disable: '{{ and (isEnvSet "GOOS") (ne .Env.GOOS "linux") }}'
60+
platforms:
61+
- linux/amd64
62+
- linux/arm64
4163
archives:
4264
- formats: ["tar.gz"]
4365
# this name template makes the OS and Arch compatible with the results of `uname`.

Dockerfile

Lines changed: 0 additions & 13 deletions
This file was deleted.

Dockerfile.local

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)