aboutsummaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorEmiliano Ciavatta2020-09-16 15:54:47 +0000
committerGitHub2020-09-16 15:54:47 +0000
commit991d3b6c91d9fe3046ec94a3716a7dd21f496feb (patch)
treedfb183c32ab4730a18b9a9c9c39b802a7b9d3eda /Dockerfile
parent1e8a07f770c85a2ed6159798d1fb00dbebe08e98 (diff)
parent5a6f17b6439e42e829a9489575400492bcd10655 (diff)
Merge pull request #14 from therealbobo/minimized_docker
Added multistage to Dockerfile
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile28
1 files changed, 24 insertions, 4 deletions
diff --git a/Dockerfile b/Dockerfile
index 0092628..e3c49bc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,12 @@
-FROM ubuntu:20.04
+# BUILD STAGE
+FROM ubuntu:20.04 AS BUILDSTAGE
# Install tools and libraries
-RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -qq git golang-1.14 pkg-config libpcap-dev libhyperscan-dev yarnpkg
+RUN apt-get update && \
+ DEBIAN_FRONTEND=noninteractive apt-get install -qq git golang-1.14 pkg-config libpcap-dev libhyperscan-dev yarnpkg curl
RUN ln -sf ../lib/go-1.14/bin/go /usr/bin/go
-ENV GIN_MODE release
COPY . /caronte
@@ -13,6 +14,25 @@ WORKDIR /caronte
RUN go mod download && go build
-RUN cd frontend && yarnpkg install && yarnpkg build
+RUN cd frontend && \
+ yarnpkg install && \
+ yarnpkg build --production=true
+RUN curl -sf https://gobinaries.com/tj/node-prune | sh && cd /caronte/frontend && node-prune
+
+
+# LAST STAGE
+FROM ubuntu:20.04
+
+COPY --from=BUILDSTAGE /caronte/caronte /caronte/caronte
+COPY --from=BUILDSTAGE /caronte/frontend /caronte/frontend
+COPY --from=BUILDSTAGE /caronte/shared /caronte/shared
+
+RUN apt-get update && \
+ DEBIAN_FRONTEND=noninteractive apt-get install -qq libpcap-dev libhyperscan-dev && \
+ rm -rf /var/lib/apt/lists/*
+
+ENV GIN_MODE release
+
+WORKDIR /caronte
CMD ./caronte