Skip to content

Commit 27205bb

Browse files
authored
add support for slim docker image release (ethersphere#1877)
1 parent a650d53 commit 27205bb

File tree

2 files changed

+146
-0
lines changed

2 files changed

+146
-0
lines changed

.goreleaser.yml

+121
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,27 @@ builds:
2020
- arm
2121
goarm:
2222
- 7
23+
- id: linux-slim
24+
main: ./cmd/bee
25+
binary: bee-slim
26+
flags:
27+
- -v
28+
- -trimpath
29+
ldflags:
30+
- -s -w -X github.com/ethersphere/bee.version={{.Version}} -X github.com/ethersphere/bee.commit={{.ShortCommit}}
31+
env:
32+
- CGO_ENABLED=0
33+
goos:
34+
- linux
35+
goarch:
36+
- amd64
37+
- arm64
38+
- arm
39+
goarm:
40+
- 7
41+
hooks:
42+
post:
43+
- upx --best "{{ .Path }}"
2344
- id: windows
2445
main: ./cmd/bee
2546
binary: bee
@@ -78,6 +99,10 @@ archives:
7899
-
79100
name_template: "{{ tolower .ProjectName }}-{{ tolower .Os }}-{{ tolower .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
80101
format: binary
102+
builds:
103+
- linux
104+
- windows
105+
- darwin
81106
-
82107
id: homebrew
83108
builds:
@@ -291,6 +316,52 @@ dockers:
291316
- "--label=org.opencontainers.image.title={{.ProjectName}}"
292317
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
293318
- "--label=org.opencontainers.image.version={{.Version}}"
319+
- image_templates:
320+
- "ethersphere/bee:{{ .Version }}-amd64-slim"
321+
- "quay.io/ethersphere/bee:{{ .Version }}-amd64-slim"
322+
use_buildx: true
323+
ids:
324+
- linux-slim
325+
goarch: amd64
326+
dockerfile: Dockerfile.scratch
327+
build_flag_templates:
328+
- "--platform=linux/amd64"
329+
- "--pull"
330+
- "--label=org.opencontainers.image.created={{.Date}}"
331+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
332+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
333+
- "--label=org.opencontainers.image.version={{.Version}}-slim"
334+
- image_templates:
335+
- "ethersphere/bee:{{ .Version }}-armv7-slim"
336+
- "quay.io/ethersphere/bee:{{ .Version }}-armv7-slim"
337+
use_buildx: true
338+
ids:
339+
- linux-slim
340+
goarch: arm
341+
goarm: 7
342+
dockerfile: Dockerfile.scratch
343+
build_flag_templates:
344+
- "--platform=linux/arm/v7"
345+
- "--pull"
346+
- "--label=org.opencontainers.image.created={{.Date}}"
347+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
348+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
349+
- "--label=org.opencontainers.image.version={{.Version}}-slim"
350+
- image_templates:
351+
- "ethersphere/bee:{{ .Version }}-arm64v8-slim"
352+
- "quay.io/ethersphere/bee:{{ .Version }}-arm64v8-slim"
353+
use_buildx: true
354+
ids:
355+
- linux-slim
356+
goarch: arm64
357+
dockerfile: Dockerfile.scratch
358+
build_flag_templates:
359+
- "--platform=linux/arm64/v8"
360+
- "--pull"
361+
- "--label=org.opencontainers.image.created={{.Date}}"
362+
- "--label=org.opencontainers.image.title={{.ProjectName}}"
363+
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
364+
- "--label=org.opencontainers.image.version={{.Version}}-slim"
294365
docker_manifests:
295366
- name_template: ethersphere/bee:{{ .Major }}
296367
image_templates:
@@ -342,3 +413,53 @@ docker_manifests:
342413
- quay.io/ethersphere/bee:{{ .Version }}-amd64
343414
- quay.io/ethersphere/bee:{{ .Version }}-armv7
344415
- quay.io/ethersphere/bee:{{ .Version }}-arm64v8
416+
- name_template: ethersphere/bee:{{ .Major }}-slim
417+
image_templates:
418+
- ethersphere/bee:{{ .Version }}-amd64-slim
419+
- ethersphere/bee:{{ .Version }}-armv7-slim
420+
- ethersphere/bee:{{ .Version }}-arm64v8-slim
421+
- name_template: ethersphere/bee:{{ .Major }}.{{ .Minor }}-slim
422+
image_templates:
423+
- ethersphere/bee:{{ .Version }}-amd64-slim
424+
- ethersphere/bee:{{ .Version }}-armv7-slim
425+
- ethersphere/bee:{{ .Version }}-arm64v8-slim
426+
- name_template: ethersphere/bee:{{ .Major }}.{{ .Minor }}.{{ .Patch }}-slim
427+
image_templates:
428+
- ethersphere/bee:{{ .Version }}-amd64-slim
429+
- ethersphere/bee:{{ .Version }}-armv7-slim
430+
- ethersphere/bee:{{ .Version }}-arm64v8
431+
- name_template: ethersphere/bee:latest-slim
432+
image_templates:
433+
- ethersphere/bee:{{ .Version }}-amd64-slim
434+
- ethersphere/bee:{{ .Version }}-armv7-slim
435+
- ethersphere/bee:{{ .Version }}-arm64v8-slim
436+
- name_template: ethersphere/bee:beta-slim
437+
image_templates:
438+
- ethersphere/bee:{{ .Version }}-amd64-slim
439+
- ethersphere/bee:{{ .Version }}-armv7-slim
440+
- ethersphere/bee:{{ .Version }}-arm64v8-slim
441+
- name_template: quay.io/ethersphere/bee:{{ .Major }}-slim
442+
image_templates:
443+
- quay.io/ethersphere/bee:{{ .Version }}-amd64-slim
444+
- quay.io/ethersphere/bee:{{ .Version }}-armv7-slim
445+
- quay.io/ethersphere/bee:{{ .Version }}-arm64v8-slim
446+
- name_template: quay.io/ethersphere/bee:{{ .Major }}.{{ .Minor }}-slim
447+
image_templates:
448+
- quay.io/ethersphere/bee:{{ .Version }}-amd64-slim
449+
- quay.io/ethersphere/bee:{{ .Version }}-armv7-slim
450+
- quay.io/ethersphere/bee:{{ .Version }}-arm64v8-slim
451+
- name_template: quay.io/ethersphere/bee:{{ .Major }}.{{ .Minor }}.{{ .Patch }}-slim
452+
image_templates:
453+
- quay.io/ethersphere/bee:{{ .Version }}-amd64-slim
454+
- quay.io/ethersphere/bee:{{ .Version }}-armv7-slim
455+
- quay.io/ethersphere/bee:{{ .Version }}-arm64v8-slim
456+
- name_template: quay.io/ethersphere/bee:latest-slim
457+
image_templates:
458+
- quay.io/ethersphere/bee:{{ .Version }}-amd64-slim
459+
- quay.io/ethersphere/bee:{{ .Version }}-armv7-slim
460+
- quay.io/ethersphere/bee:{{ .Version }}-arm64v8-slim
461+
- name_template: quay.io/ethersphere/bee:beta-slim
462+
image_templates:
463+
- quay.io/ethersphere/bee:{{ .Version }}-amd64-slim
464+
- quay.io/ethersphere/bee:{{ .Version }}-armv7-slim
465+
- quay.io/ethersphere/bee:{{ .Version }}-arm64v8-slim

Dockerfile.scratch

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
FROM debian:10.9-slim
2+
3+
ENV DEBIAN_FRONTEND noninteractive
4+
5+
RUN apt-get update && apt-get install -y --no-install-recommends \
6+
ca-certificates; \
7+
groupadd -r bee --gid 999; \
8+
useradd -r -g bee --uid 999 --no-log-init -m bee;
9+
10+
# make sure mounted volumes have correct permissions
11+
RUN mkdir -p /home/bee/.bee && chown 999:999 /home/bee/.bee
12+
13+
FROM scratch
14+
15+
COPY bee-slim /usr/local/bin/bee
16+
COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs
17+
COPY --from=0 /etc/passwd /etc/passwd
18+
COPY --from=0 /home /home
19+
20+
EXPOSE 1633 1634 1635
21+
USER bee
22+
WORKDIR /home/bee
23+
VOLUME /home/bee/.bee
24+
25+
ENTRYPOINT ["bee"]

0 commit comments

Comments
 (0)