summaryrefslogtreecommitdiff
path: root/Dockerfile
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2020-05-03 09:55:55 +0200
committerDaniel Friesel <derf@finalrewind.org>2020-05-03 09:55:55 +0200
commitb02492a1b3c38dd2a2a636260425f93320ace5b2 (patch)
tree5503de0d47eef113fbf4b8777d312e232054d5cc /Dockerfile
parent29302eb32e68ec4a6c37497547721494972e1ffe (diff)
Decrease image size
* use intermediate image for file setup * Set version via build-arg instead of from .git
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile51
1 files changed, 35 insertions, 16 deletions
diff --git a/Dockerfile b/Dockerfile
index 6fb8ce5..90119d9 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,3 +1,24 @@
+# docker build -t db-fakedisplay:latest --build-arg=dbf_version=$(git describe --dirty) .
+
+FROM debian:buster-slim as files
+
+ARG dbf_version=git
+
+COPY index.pl /app/
+COPY lib/ /app/lib/
+COPY public/ /app/public/
+COPY templates/ /app/templates/
+COPY share/ /app/share/
+
+WORKDIR /app
+
+RUN ln -sf ../ext-templates/imprint.html.ep templates/imprint.html.ep \
+ && ln -sf ../ext-templates/privacy.html.ep templates/privacy.html.ep
+
+RUN find lib -name *.pm | xargs sed -i \
+ -e "s/VERSION *= *.*;/VERSION = '${dbf_version}';/" \
+ -e "s/dbf_version *= *.*;/dbf_version = '${dbf_version}';/"
+
FROM perl:5.30-slim
ARG DEBIAN_FRONTEND=noninteractive
@@ -7,28 +28,26 @@ COPY cpanfile /app/cpanfile
WORKDIR /app
RUN apt-get update \
- && apt-get -y --no-install-recommends install ca-certificates curl gcc git libc6-dev libdb5.3 libdb5.3-dev libssl1.1 libssl-dev libxml2 libxml2-dev make zlib1g-dev \
+ && apt-get -y --no-install-recommends install \
+ ca-certificates \
+ curl \
+ gcc \
+ libc6-dev \
+ libdb5.3 \
+ libdb5.3-dev \
+ libssl1.1 \
+ libssl-dev \
+ libxml2 \
+ libxml2-dev \
+ make \
+ zlib1g-dev \
&& cpanm -n --no-man-pages --installdeps . \
&& rm -rf ~/.cpanm \
&& apt-get -y purge curl gcc libc6-dev libdb5.3-dev libssl-dev libxml2-dev make zlib1g-dev \
&& apt-get -y autoremove \
- && apt-get -y clean \
&& rm -rf /var/cache/apt/* /var/lib/apt/lists/*
-COPY .git/ /app/.git/
-COPY lib/ /app/lib/
-COPY public/ /app/public/
-COPY templates/ /app/templates/
-COPY share/ /app/share/
-COPY index.pl /app
-
-RUN find lib -name *.pm | xargs sed -i \
- -e "s/VERSION *= *.*;/VERSION = '$(git describe)';/" \
- -e "s/dbf_version *= *.*;/dbf_version = '$(git describe)';/" \
- && rm -rf .git
-
-RUN ln -sf ../ext-templates/imprint.html.ep templates/imprint.html.ep \
- && ln -sf ../ext-templates/privacy.html.ep templates/privacy.html.ep
+COPY --from=files /app/ /app/
EXPOSE 8092