|
@@ -1,46 +1,36 @@
|
1
|
|
-## build Ergo
|
|
1
|
+## build ergo binary
|
2
|
2
|
FROM golang:1.16-alpine AS build-env
|
3
|
3
|
|
4
|
|
-RUN apk add --no-cache git make curl sed
|
|
4
|
+RUN apk add -U --force-refresh --no-cache --purge --clean-protected -l -u make
|
5
|
5
|
|
6
|
|
-# copy ergo
|
7
|
|
-RUN mkdir -p /go/src/github.com/ergochat/ergo
|
|
6
|
+# copy ergo source
|
8
|
7
|
WORKDIR /go/src/github.com/ergochat/ergo
|
9
|
|
-ADD . /go/src/github.com/ergochat/ergo/
|
|
8
|
+COPY . .
|
10
|
9
|
|
11
|
10
|
# modify default config file so that it doesn't die on IPv6
|
12
|
11
|
# and so it can be exposed via 6667 by default
|
13
|
|
-run sed -i 's/^\(\s*\)\"127.0.0.1:6667\":.*$/\1":6667":/' /go/src/github.com/ergochat/ergo/default.yaml
|
14
|
|
-run sed -i 's/^\s*\"\[::1\]:6667\":.*$//' /go/src/github.com/ergochat/ergo/default.yaml
|
|
12
|
+RUN sed -i 's/^\(\s*\)\"127.0.0.1:6667\":.*$/\1":6667":/' /go/src/github.com/ergochat/ergo/default.yaml && \
|
|
13
|
+ sed -i 's/^\s*\"\[::1\]:6667\":.*$//' /go/src/github.com/ergochat/ergo/default.yaml
|
15
|
14
|
|
16
|
15
|
# compile
|
17
|
16
|
RUN make
|
18
|
17
|
|
19
|
|
-
|
20
|
|
-
|
21
|
|
-## run Ergo
|
22
|
|
-FROM alpine:3.9
|
|
18
|
+## build ergo container
|
|
19
|
+FROM alpine:3.13
|
23
|
20
|
|
24
|
21
|
# metadata
|
25
|
|
-LABEL maintainer="daniel@danieloaks.net"
|
26
|
|
-LABEL description="Ergo is a modern, experimental IRC server written in Go"
|
27
|
|
-
|
28
|
|
-# install latest updates and configure alpine
|
29
|
|
-RUN apk update
|
30
|
|
-RUN apk upgrade
|
31
|
|
-RUN mkdir /lib/modules
|
|
22
|
+LABEL maintainer="Daniel Oaks <daniel@danieloaks.net>,Daniel Thamdrup <dallemon@protonmail.com>" \
|
|
23
|
+ description="Ergo is a modern, experimental IRC server written in Go"
|
32
|
24
|
|
33
|
25
|
# standard ports listened on
|
34
|
26
|
EXPOSE 6667/tcp 6697/tcp
|
35
|
27
|
|
36
|
|
-# oragono itself
|
37
|
|
-RUN mkdir -p /ircd-bin
|
38
|
|
-COPY --from=build-env /go/bin/ergo /ircd-bin
|
|
28
|
+# 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/
|
39
|
33
|
COPY --from=build-env /go/src/github.com/ergochat/ergo/languages /ircd-bin/languages/
|
40
|
|
-COPY --from=build-env /go/src/github.com/ergochat/ergo/default.yaml /ircd-bin/default.yaml
|
41
|
|
-
|
42
|
|
-COPY distrib/docker/run.sh /ircd-bin/run.sh
|
43
|
|
-RUN chmod +x /ircd-bin/run.sh
|
44
|
34
|
|
45
|
35
|
# running volume holding config file, db, certs
|
46
|
36
|
VOLUME /ircd
|