Browse Source

dockerfile: Use multi-stage build for much smaller sizes

pull/4/head
Daniel Oaks 6 years ago
parent
commit
5922eae0f6
1 changed files with 13 additions and 5 deletions
  1. 13
    5
      Dockerfile

+ 13
- 5
Dockerfile View File

@@ -1,6 +1,5 @@
1
-FROM golang:rc
2
-
3
-EXPOSE 6667/tcp 6697/tcp
1
+# build Oragono
2
+FROM golang:rc AS build-env
4 3
 
5 4
 RUN apt-get install -y git
6 5
 
@@ -10,8 +9,17 @@ WORKDIR /go/src/github.com/oragono
10 9
 RUN git clone https://github.com/oragono/oragono.git
11 10
 WORKDIR /go/src/github.com/oragono/oragono
12 11
 RUN git submodule update --init
13
-RUN go build oragono.go
12
+RUN make linux
13
+
14
+# run in Alpine, being a lightweight distro
15
+FROM alpine:latest
16
+EXPOSE 6667/tcp 6697/tcp
17
+
18
+RUN mkdir -p /ircd
19
+WORKDIR /ircd
14 20
 
15
-COPY run.sh /go/src/github.com/oragono/oragono
21
+COPY --from=build-env /go/src/github.com/oragono/oragono/build/oragono-XXX-linux.tgz /
22
+RUN tar -xzf /oragono-XXX-linux.tgz
23
+COPY run.sh /ircd
16 24
 
17 25
 CMD ["./run.sh"]

Loading…
Cancel
Save