# HG changeset patch # User Sebastien Jodogne # Date 1629364315 -7200 # Node ID 81a0975a24799aa45b54c16788cf87c927d72210 # Parent 01df28d28247315a2b36d5c98f5d38356a203914 distinguishing Debian docker-based builds between buster and bullseye diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/Debian/docker-bullseye-compile.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/Builders/Debian/docker-bullseye-compile.sh Thu Aug 19 11:11:55 2021 +0200 @@ -0,0 +1,27 @@ +#!/bin/bash + +set -ex + +if [ "$1" != "Debug" -a "$1" != "Release" ]; then + echo "Please provide build type: Debug or Release" + exit -1 +fi + +if [ -t 1 ]; then + # TTY is available => use interactive mode + DOCKER_FLAGS='-i' +fi + +ROOT_DIR=`dirname $(readlink -f $0)`/../../.. + +mkdir -p ${ROOT_DIR}/docker-build-bullseye/ + +docker pull debian:bullseye-slim + +docker run -t ${DOCKER_FLAGS} --rm \ + -v ${ROOT_DIR}:/source:ro \ + -v ${ROOT_DIR}/docker-build-bullseye:/target:rw \ + debian:bullseye-slim \ + bash /source/Resources/Builders/Debian/docker-internal.sh $1 3.9 $(id -u) $(id -g) + +ls -lR ${ROOT_DIR}/docker-build-bullseye/ diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/Debian/docker-buster-compile.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/Builders/Debian/docker-buster-compile.sh Thu Aug 19 11:11:55 2021 +0200 @@ -0,0 +1,27 @@ +#!/bin/bash + +set -ex + +if [ "$1" != "Debug" -a "$1" != "Release" ]; then + echo "Please provide build type: Debug or Release" + exit -1 +fi + +if [ -t 1 ]; then + # TTY is available => use interactive mode + DOCKER_FLAGS='-i' +fi + +ROOT_DIR=`dirname $(readlink -f $0)`/../../.. + +mkdir -p ${ROOT_DIR}/docker-build-buster/ + +docker pull debian:buster-slim + +docker run -t ${DOCKER_FLAGS} --rm \ + -v ${ROOT_DIR}:/source:ro \ + -v ${ROOT_DIR}/docker-build-buster:/target:rw \ + debian:buster-slim \ + bash /source/Resources/Builders/Debian/docker-internal.sh $1 3.7 $(id -u) $(id -g) + +ls -lR ${ROOT_DIR}/docker-build-buster/ diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/Debian/docker-internal.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Resources/Builders/Debian/docker-internal.sh Thu Aug 19 11:11:55 2021 +0200 @@ -0,0 +1,44 @@ +#!/bin/bash +set -ex + +BUILD_TYPE=$1 +PYTHON_VERSION=$2 +USER_ID=$3 +GROUP_ID=$4 + +# Create the same user and group than the one who is running the +# "./docker-{distro}-compile.sh" script on the hosting system (*) +groupadd -g ${GROUP_ID} -r orthanc +useradd -u ${USER_ID} -r -g orthanc orthanc + +apt-get update +apt-get -y install nano build-essential unzip cmake pkg-config libpython3-dev mercurial +apt-get clean +rm -rf /var/lib/apt/lists/* + +mkdir /tmp/source-writeable + +cp -r /source/CMakeLists.txt /tmp/source-writeable/ +cp -r /source/Sources /tmp/source-writeable/ +cp -r /source/Resources /tmp/source-writeable/ + +mkdir /tmp/build +cd /tmp/build + +cmake /tmp/source-writeable/ \ + -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ + -DPYTHON_VERSION=${PYTHON_VERSION} \ + -DSTATIC_BUILD=ON \ + -DCMAKE_INSTALL_PREFIX=/target + +make -j`nproc` + +if [ "$1" == "Release" ]; then + strip ./libOrthancPython.so +fi + +# Copy the installation to the host filesystem, using the +# newly-created user "orthanc" (*) that corresponds to the user who is +# running "./debian-{distro}-compile.sh" script. This allows to avoid +# files owned by the "root" user on the host filesystem. +su -c "cp /tmp/build/libOrthancPython.so /target" orthanc diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/DebianStable/Dockerfile-BuildEnvironment --- a/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment Thu Aug 12 18:39:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -FROM debian:stable-slim - -MAINTAINER Sebastien Jodogne -LABEL Description="Orthanc, free DICOM server" Vendor="The Orthanc project" - -RUN apt-get -y clean && apt-get -y update && \ - DEBIAN_FRONTEND=noninteractive apt-get -y install \ - nano build-essential unzip cmake pkg-config libpython3.7-dev mercurial && \ - apt-get clean && rm -rf /var/lib/apt/lists/* diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/DebianStable/Dockerfile-Release --- a/Resources/Builders/DebianStable/Dockerfile-Release Thu Aug 12 18:39:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -FROM jodogne/orthanc-plugins:1.6.0 - -MAINTAINER Sebastien Jodogne -LABEL Description="Orthanc, free DICOM server" Vendor="The Orthanc project" - -RUN apt-get -y clean && apt-get -y update -RUN DEBIAN_FRONTEND=noninteractive apt-get -y install python3.7 libpython3.7 && \ - apt-get clean && rm -rf /var/lib/apt/lists/* - -ADD ./docker-build/share/orthanc/plugins/libOrthancPython.so \ - /usr/local/share/orthanc/plugins/libOrthancPython.so diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/DebianStable/NOTES.txt --- a/Resources/Builders/DebianStable/NOTES.txt Thu Aug 12 18:39:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ - - -Create the Docker image: - -$ ./docker-compile.sh Release -$ docker build -f Dockerfile-Release -t python-plugin ../../.. - - -Run the just-created Docker image: - -$ docker run -p 4242:4242 -p 8042:8042 --rm python-plugin - diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/DebianStable/docker-compile.sh --- a/Resources/Builders/DebianStable/docker-compile.sh Thu Aug 12 18:39:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -#!/bin/bash - -set -ex - -if [ "$1" != "Debug" -a "$1" != "Release" ]; then - echo "Please provide build type: Debug or Release" - exit -1 -fi - -if [ -t 1 ]; then - # TTY is available => use interactive mode - DOCKER_FLAGS='-i' -fi - -ROOT_DIR=`dirname $(readlink -f $0)`/../../.. - -mkdir -p ${ROOT_DIR}/docker-build/ - -docker build \ - -f ${ROOT_DIR}/Resources/Builders/DebianStable/Dockerfile-BuildEnvironment \ - -t debian-stable-python-build . - -docker run -t ${DOCKER_FLAGS} --rm \ - --user $(id -u):$(id -g) \ - -v ${ROOT_DIR}:/source:ro \ - -v ${ROOT_DIR}/docker-build:/target:rw \ - debian-stable-python-build \ - bash /source/Resources/Builders/DebianStable/docker-internal.sh $1 - -ls -lR ${ROOT_DIR}/docker-build/ diff -r 01df28d28247 -r 81a0975a2479 Resources/Builders/DebianStable/docker-internal.sh --- a/Resources/Builders/DebianStable/docker-internal.sh Thu Aug 12 18:39:05 2021 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -#!/bin/bash -set -ex - -mkdir /tmp/source-writeable - -cp -r /source/CMakeLists.txt /tmp/source-writeable/ -cp -r /source/Sources /tmp/source-writeable/ -cp -r /source/Resources /tmp/source-writeable/ - -mkdir /tmp/build -cd /tmp/build - -cmake /tmp/source-writeable/ \ - -DCMAKE_BUILD_TYPE=$1 \ - -DPYTHON_VERSION=3.7 \ - -DSTATIC_BUILD=ON \ - -DCMAKE_INSTALL_PREFIX=/target - -make -j`nproc` - -if [ "$1" == "Release" ]; then - strip ./libOrthancPython.so -fi - -make install