From 817db7592af8f6d48b6066dbdf6d83ea8e9909fa Mon Sep 17 00:00:00 2001 From: Stephen Gaito Date: Mon, 25 Nov 2019 11:19:44 +0000 Subject: [PATCH] initial working draft of building docker image --- buildScripts/createDockerImage | 31 +++++++++++++++--- buildScripts/dockerFunctions | 59 ++++++++++++++++++++++++++++++++++ buildScripts/versionEnvs | 2 ++ 3 files changed, 87 insertions(+), 5 deletions(-) create mode 100644 buildScripts/dockerFunctions diff --git a/buildScripts/createDockerImage b/buildScripts/createDockerImage index bc11110..f9f2cda 100755 --- a/buildScripts/createDockerImage +++ b/buildScripts/createDockerImage @@ -1,13 +1,34 @@ #!/bin/bash -# This bash script creates an Docker Image for pdf2htmlEX +# This bash script creates a docker image from an existing pdf2htmlEX source buildScripts/versionEnvs -cd imageBuild +source buildScripts/dockerFunctions -pip install git+https://github.com/larsks/dockerize +mkdir -p imageBuild/dockerDir + +cd pdf2htmlEX/build + +sudo rm -rf install_manifest.txt + +make install DESTDIR=../../imageBuild/dockerDir + +cd ../../imageBuild/dockerDir + +copy_deps + +delete_blacklisted + +cat >> Dockerfile <" | awk '{print $3}' \ + | xargs -I '{}' echo '{}' >> DEPSFILE + done + + DEPS=$(cat DEPSFILE | sort | uniq) + + for FILE in $DEPS ; do + if [ -e $FILE ] && [[ $(readlink -f $FILE)/ != $PWD/* ]] ; then + cp -v --parents -rfL $FILE ./ || true + fi + done + rm -f DEPSFILE +} + +# Delete blacklisted files. Our blacklisted files are the shared libraries +# extracted from the "base" docker image +# +delete_blacklisted() +{ + docker run --rm -it --entrypoint=find $DOCKER_FROM -iname "*.so.*" \ + | xargs -i basename {} | sed 's/\r//g' | sed 's/\(so\.[0-9]\+\).*$/\1/' \ + | sort | uniq > BLACKLISTED_FILES + + for FILE in $(cat BLACKLISTED_FILES | tr "\r\n" " ") ; do + FILES="$(find . -name "${FILE}*" -not -path "./usr/optional/*")" + for FOUND in $FILES ; do + rm -vf "$FOUND" "$(readlink -f "$FOUND")" + done + done + + rm BLACKLISTED_FILES + + # Do not bundle developer stuff + rm -rf usr/include || true + rm -rf usr/lib/cmake || true + rm -rf usr/lib/pkgconfig || true + find . -name '*.la' | xargs -i rm {} +} + diff --git a/buildScripts/versionEnvs b/buildScripts/versionEnvs index e7bf2c2..3cea7c5 100644 --- a/buildScripts/versionEnvs +++ b/buildScripts/versionEnvs @@ -9,3 +9,5 @@ export POPPLER_VERSION=poppler-0.81.0 export FONTFORGE_VERSION=20170731 export PDF2HTMLEX_VERSION=newBuildSystem export MACHINE_ARCH=`uname -m` +export DOCKER_FROM=ubuntu:16.04 +