mirror of
https://github.com/bbernhard/signal-cli-rest-api.git
synced 2026-05-26 14:44:15 +00:00
build(Dockerfile): reduce image size from 2G GB to ~0.4GB
This uses mulit-stage build to separate the build phase from the distribution image and signigicantly reduces images size. You can find more information on Docker multistage builds here: https://docs.docker.com/develop/develop-images/multistage-build/
This commit is contained in:
parent
4e4829b650
commit
b0b3dc761b
17
Dockerfile
17
Dockerfile
@ -1,4 +1,4 @@
|
|||||||
FROM golang:1.13-buster
|
FROM golang:1.13-buster AS buildcontainer
|
||||||
|
|
||||||
ARG SIGNAL_CLI_VERSION=0.6.8
|
ARG SIGNAL_CLI_VERSION=0.6.8
|
||||||
ARG SWAG_VERSION=1.6.7
|
ARG SWAG_VERSION=1.6.7
|
||||||
@ -29,10 +29,7 @@ RUN cd /tmp/ \
|
|||||||
&& git checkout v${SIGNAL_CLI_VERSION} \
|
&& git checkout v${SIGNAL_CLI_VERSION} \
|
||||||
&& ./gradlew build \
|
&& ./gradlew build \
|
||||||
&& ./gradlew installDist \
|
&& ./gradlew installDist \
|
||||||
&& ln -s /tmp/signal-cli-${SIGNAL_CLI_VERSION}/build/install/signal-cli/bin/signal-cli /usr/bin/signal-cli
|
&& ln -s /tmp/signal-cli-${SIGNAL_CLI_VERSION}/build/install/signal-cli/ /tmp/signal-cli
|
||||||
|
|
||||||
RUN mkdir -p /signal-cli-config/
|
|
||||||
RUN mkdir -p /home/.local/share/signal-cli
|
|
||||||
|
|
||||||
COPY src/api /tmp/signal-cli-rest-api-src/api
|
COPY src/api /tmp/signal-cli-rest-api-src/api
|
||||||
COPY src/main.go /tmp/signal-cli-rest-api-src/
|
COPY src/main.go /tmp/signal-cli-rest-api-src/
|
||||||
@ -41,7 +38,15 @@ COPY src/go.sum /tmp/signal-cli-rest-api-src/
|
|||||||
|
|
||||||
RUN cd /tmp/signal-cli-rest-api-src && swag init && go build
|
RUN cd /tmp/signal-cli-rest-api-src && swag init && go build
|
||||||
|
|
||||||
ENV PATH /tmp/signal-cli-rest-api-src/:/usr/bin/signal-cli-${SIGNAL_CLI_VERSION}/bin/:$PATH
|
# Start a fresh container for release container
|
||||||
|
FROM openjdk:11-slim
|
||||||
|
|
||||||
|
COPY --from=buildcontainer /tmp/signal-cli-rest-api-src/signal-cli-rest-api /usr/bin/signal-cli-rest-api
|
||||||
|
COPY --from=buildcontainer /tmp/signal-cli /opt/signal-cli
|
||||||
|
|
||||||
|
RUN ln -s /opt/signal-cli/bin/signal-cli /usr/bin/signal-cli
|
||||||
|
RUN mkdir -p /signal-cli-config/
|
||||||
|
RUN mkdir -p /home/.local/share/signal-cli
|
||||||
|
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user