diff options
author | Daniel Friesel <derf@finalrewind.org> | 2020-05-03 13:42:31 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2020-05-03 13:42:31 +0200 |
commit | 280ee968915b23008dcf7601074e0d7a5bbd1c30 (patch) | |
tree | 34ae8f8e8c1e3b89841e7f930cd34d417a778ee8 | |
parent | 50f7cfbea6265b0be22a132f5711342b2f7d9924 (diff) |
Decrease Docker image size
* use intermediate image for file setup
* Set version via build-arg instead of from .git
-rw-r--r-- | Dockerfile | 68 |
1 files changed, 56 insertions, 12 deletions
@@ -1,29 +1,73 @@ +# docker build -t vrr-fakedisplay:latest --build-arg=vrrf_version=$(git describe --dirty) . + +FROM debian:buster-slim AS files + +ARG vrrf_version=git + +COPY Build.PL cpanfile index.pl /app/ +COPY lib/ /app/lib/ +COPY public/ /app/public/ +COPY share/ /app/share/ +COPY templates/ /app/templates/ + +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' -or -name '*.PL' | xargs sed -i \ + -e "s/VERSION *= *.*;/VERSION = '${vrrf_version}';/" + +RUN sed -i -e "s/VERSION *= *.*;/VERSION = '${vrrf_version}';/" \ + index.pl + + FROM perl:5.30-slim ARG DEBIAN_FRONTEND=noninteractive +ARG APT_LISTCHANGES_FRONTEND=none + +COPY --from=files /app/ /app/ -COPY . /app WORKDIR /app -RUN rm -rf public \ - && apt-get update \ - && apt-get -y --no-install-recommends install ca-certificates curl gcc git libc6-dev libdb5.3 libdb5.3-dev libgd3 libgd-dev libssl1.1 libssl-dev libxml2 libxml2-dev make zlib1g-dev \ +RUN apt-get update \ + && apt-get -y --no-install-recommends install \ + ca-certificates \ + curl \ + gcc \ + libc6-dev \ + libdb5.3 \ + libdb5.3-dev \ + libgd3 \ + libgd-dev \ + libssl1.1 \ + libssl-dev \ + libxml2 \ + libxml2-dev \ + make \ + zlib1g-dev \ && cpanm -n --no-man-pages --installdeps . \ + && mv public / \ && perl Build.PL \ && perl Build \ && perl Build manifest \ && perl Build install \ - && rm -rf ~/.cpanm \ - && apt-get -y purge curl gcc libc6-dev libdb5.3-dev libgd-dev libssl-dev libxml2-dev make zlib1g-dev \ + && rm -rf ~/.cpanm _build blib MANIFEST* META* MYMETA* \ + && mv /public . \ + && apt-get -y purge \ + curl \ + gcc \ + libc6-dev \ + libdb5.3-dev -\ + libgd-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/* -RUN ln -sf ../ext-templates/imprint.html.ep templates/imprint.html.ep \ - && ln -sf ../ext-templates/privacy.html.ep templates/privacy.html.ep - -COPY public /app/public/ - EXPOSE 8091 CMD ["hypnotoad", "-f", "index.pl"] |