|
@@ -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
|