summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2020-04-25 20:35:28 +0200
committerDaniel Friesel <derf@finalrewind.org>2020-04-25 20:35:28 +0200
commit51e38c5fa97aec201139f358732b8c4a54e81446 (patch)
tree39e3e452e761b335ca78ec4f516d8999af9f3dcb
parente57b9ea3df711dc6283a0a197bedf48d9167122f (diff)
Add Dockerfile and docker-based .deb build scripts
-rw-r--r--Dockerfile22
-rwxr-xr-xscripts/makedeb-docker11
-rwxr-xr-xscripts/makedeb-docker-helper31
3 files changed, 64 insertions, 0 deletions
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