From 51e38c5fa97aec201139f358732b8c4a54e81446 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sat, 25 Apr 2020 20:35:28 +0200 Subject: Add Dockerfile and docker-based .deb build scripts --- Dockerfile | 22 ++++++++++++++++++++++ scripts/makedeb-docker | 11 +++++++++++ scripts/makedeb-docker-helper | 31 +++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 Dockerfile create mode 100755 scripts/makedeb-docker create mode 100755 scripts/makedeb-docker-helper diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..fdd0a85 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM perl:5.30-slim + +COPY bin/ /app/bin/ +COPY lib/ /app/lib/ +COPY Build.PL cpanfile* /app/ + +WORKDIR /app + +ARG DEBIAN_FRONTEND=noninteractive + +RUN apt-get update \ + && apt-get -y --no-install-recommends install ca-certificates curl gcc libc6-dev libssl1.1 libssl-dev libxml2 libxml2-dev make zlib1g-dev \ + && cpanm -n --no-man-pages --installdeps . \ + && perl Build.PL \ + && perl Build \ + && rm -rf ~/.cpanm \ + && apt-get -y purge curl gcc libc6-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/* + +ENTRYPOINT ["perl", "-Ilib", "bin/efa-m"] diff --git a/scripts/makedeb-docker b/scripts/makedeb-docker new file mode 100755 index 0000000..6c06971 --- /dev/null +++ b/scripts/makedeb-docker @@ -0,0 +1,11 @@ +#!/bin/sh + +mkdir -p out + +docker run --rm -v "${PWD}:/orig:ro" -v "${PWD}/scripts:/scripts:ro" \ + -v "${PWD}/out:/out" -e USER=$(id -u) -e GROUP=$(id -g) \ + -e "DEBEMAIL=${DEBEMAIL}" -e "DEBFULLNAME=${DEBFULLNAME}" \ + -e "LOGNAME=${LOGNAME}" -e "VERSION=$(git describe --dirty)-1" \ + debian:buster /scripts/makedeb-docker-helper + +echo "Debian package has been written to $(pwd)/out" diff --git a/scripts/makedeb-docker-helper b/scripts/makedeb-docker-helper new file mode 100755 index 0000000..4fe1059 --- /dev/null +++ b/scripts/makedeb-docker-helper @@ -0,0 +1,31 @@ +#!/bin/sh + +set -e + +export DEBIAN_FRONTEND=noninteractive + +apt-get update +apt-get -y install \ + apt-file dh-make-perl libmodule-build-perl \ + libclass-accessor-perl libexception-class-perl libfile-slurp-perl \ + libwww-perl libxml-libxml-perl \ + libtest-compile-perl libtest-pod-perl \ + libtest-fatal-perl libtest-simple-perl + +apt-file update +apt-cache dumpavail | dpkg --merge-avail + +mkdir -p /src/app +cp -a /orig/Build.PL /orig/Changelog /orig/README /src/app +cp -a /orig/bin /orig/lib /orig/t /src/app +cd /src/app + +sed -i 's/sign => 1/sign => 0/' Build.PL +perl Build.PL +perl Build +perl Build manifest +perl Build dist +mv Travel-Status-DE-VRR-*.tar.gz ../app.tar.gz +dh-make-perl --build --version "${VERSION}" +chown ${USER}:${GROUP} ../*.deb +mv -v ../*.deb /out -- cgit v1.2.3