Browse Source

new dockerfile based on chainguard images

Signed-off-by: Daniel Thamdrup <dallemon@protonmail.com>
pull/2102/head
Daniel Thamdrup 5 months ago
parent
commit
ce11499792
No account linked to committer's email address
1 changed files with 16 additions and 18 deletions
  1. 16
    18
      Dockerfile

+ 16
- 18
Dockerfile View File

@@ -1,7 +1,6 @@
1
+# syntax=docker/dockerfile:latest
1 2
 ## build ergo binary
2
-FROM docker.io/golang:1.21-alpine AS build-env
3
-
4
-RUN apk upgrade -U --force-refresh --no-cache && apk add --no-cache --purge --clean-protected -l -u make git
3
+FROM cgr.dev/chainguard/go:latest AS build-env
5 4
 
6 5
 # copy ergo source
7 6
 WORKDIR /go/src/github.com/ergochat/ergo
@@ -15,34 +14,33 @@ RUN sed -i 's/^\(\s*\)\"127.0.0.1:6667\":.*$/\1":6667":/' /go/src/github.com/erg
15 14
 # compile
16 15
 RUN make install
17 16
 
17
+## tmp container for collecting files
18
+FROM scratch AS tmp
19
+
20
+# collect all files
21
+COPY --from=build-env /root/go/bin/ergo \
22
+                      /go/src/github.com/ergochat/ergo/default.yaml \
23
+                      /go/src/github.com/ergochat/ergo/distrib/docker/run.sh \
24
+                      /ircd-bin/
25
+COPY --from=build-env /go/src/github.com/ergochat/ergo/languages /ircd-bin/languages/
26
+COPY --from=build-env /go/src/github.com/ergochat/ergo/ergo.motd /ircd/ergo.motd
27
+
18 28
 ## build ergo container
19
-FROM docker.io/alpine:3.13
29
+FROM cgr.dev/chainguard/busybox:latest AS runtime
20 30
 
21 31
 # metadata
22
-LABEL maintainer="Daniel Oaks <daniel@danieloaks.net>,Daniel Thamdrup <dallemon@protonmail.com>" \
32
+LABEL maintainer="Daniel Oaks <daniel@danieloaks.net>,Daniel Thamdrup <danielthamdrup@pm.me>" \
23 33
       description="Ergo is a modern, experimental IRC server written in Go"
24 34
 
25 35
 # standard ports listened on
26 36
 EXPOSE 6667/tcp 6697/tcp
27 37
 
28 38
 # ergo itself
29
-COPY --from=build-env /go/bin/ergo \
30
-                      /go/src/github.com/ergochat/ergo/default.yaml \
31
-                      /go/src/github.com/ergochat/ergo/distrib/docker/run.sh \
32
-                      /ircd-bin/
33
-COPY --from=build-env /go/src/github.com/ergochat/ergo/languages /ircd-bin/languages/
39
+COPY --from=tmp --chown=nonroot:nonroot / /
34 40
 
35 41
 # running volume holding config file, db, certs
36 42
 VOLUME /ircd
37 43
 WORKDIR /ircd
38 44
 
39
-# default motd
40
-COPY --from=build-env /go/src/github.com/ergochat/ergo/ergo.motd /ircd/ergo.motd
41
-
42 45
 # launch
43 46
 ENTRYPOINT ["/ircd-bin/run.sh"]
44
-
45
-# # uncomment to debug
46
-# RUN apk add --no-cache bash
47
-# RUN apk add --no-cache vim
48
-# CMD /bin/bash

Loading…
Cancel
Save