Skip to content

Plone: Release 4.3.19 and 5.1.6#6870

Merged
yosifkit merged 3 commits intodocker-library:masterfrom
avoinea:master
Oct 29, 2019
Merged

Plone: Release 4.3.19 and 5.1.6#6870
yosifkit merged 3 commits intodocker-library:masterfrom
avoinea:master

Conversation

@avoinea
Copy link
Contributor

@avoinea avoinea commented Oct 28, 2019

New releases for Plone branches:

  • 4.3.x
  • 5.1.x

@yosifkit
Copy link
Member

TravisCI is failing because 4.3.19 is from a no longer supported python:2.7-alpine3.7 (i.e. that image has not had any rebuilds since it was removed in #5403). The image still exists on the Docker Hub, but is no longer rebuilt for python or alpine bumps.

Are these bumps meant to stay long term (e.g. a future 4.3.20) or is this more of a backported security/bug fix and they'll be removed from the library/ file once built?

@avoinea
Copy link
Contributor Author

avoinea commented Oct 29, 2019

Are these bumps meant to stay long term (e.g. a future 4.3.20) or is this more of a backported security/bug fix and they'll be removed from the library/ file once built?

@yosifkit Thank you!

I bumped OS versions to the latest.

Indeed 4.3.x and 5.1.x are only bug and security fixes releases and they will be discontinued once Python 2 support ends.

@yosifkit
Copy link
Member

Diff:
diff --git a/_bashbrew-arches b/_bashbrew-arches
index 06bc58e..1bff3ba 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1,3 +1,29 @@
+plone:4 @ amd64
+plone:4 @ arm32v5
+plone:4 @ arm32v7
+plone:4 @ arm64v8
+plone:4 @ i386
+plone:4 @ ppc64le
+plone:4 @ s390x
+plone:4-alpine @ amd64
+plone:4-alpine @ arm32v6
+plone:4-alpine @ arm64v8
+plone:4-alpine @ i386
+plone:4-alpine @ ppc64le
+plone:4-alpine @ s390x
+plone:5.1 @ amd64
+plone:5.1 @ arm32v5
+plone:5.1 @ arm32v7
+plone:5.1 @ arm64v8
+plone:5.1 @ i386
+plone:5.1 @ ppc64le
+plone:5.1 @ s390x
+plone:5.1-alpine @ amd64
+plone:5.1-alpine @ arm32v6
+plone:5.1-alpine @ arm64v8
+plone:5.1-alpine @ i386
+plone:5.1-alpine @ ppc64le
+plone:5.1-alpine @ s390x
 plone:alpine @ amd64
 plone:alpine @ arm32v6
 plone:alpine @ arm64v8
diff --git a/_bashbrew-list b/_bashbrew-list
index adc0a22..227f4d9 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -1,6 +1,16 @@
+plone:4
+plone:4-alpine
+plone:4.3
+plone:4.3-alpine
+plone:4.3.19
+plone:4.3.19-alpine
 plone:5
 plone:5-alpine
 plone:5-python2
+plone:5.1
+plone:5.1-alpine
+plone:5.1.6
+plone:5.1.6-alpine
 plone:5.2
 plone:5.2-alpine
 plone:5.2-python2
diff --git a/plone_alpine/Dockerfile b/plone_4-alpine/Dockerfile
similarity index 44%
copy from plone_alpine/Dockerfile
copy to plone_4-alpine/Dockerfile
index 1861591..15133e2 100644
--- a/plone_alpine/Dockerfile
+++ b/plone_4-alpine/Dockerfile
@@ -1,18 +1,17 @@
-FROM python:3.7-alpine3.9
+FROM python:2.7-alpine
 
-ENV PIP=19.0.3 \
+ENV PIP=9.0.3 \
     ZC_BUILDOUT=2.13.1 \
-    SETUPTOOLS=41.0.0 \
+    SETUPTOOLS=40.8.0 \
     WHEEL=0.33.1 \
-    PLONE_MAJOR=5.2 \
-    PLONE_VERSION=5.2 \
-    PLONE_VERSION_RELEASE=5.2.0 \
-    PLONE_MD5=211ff749422611db2e448dea639e1fba
+    PLONE_MAJOR=4.3 \
+    PLONE_VERSION=4.3.19 \
+    PLONE_MD5=04ed5beac7fb8504f06a36d44e407b06
 
 LABEL plone=$PLONE_VERSION \
     os="alpine" \
-    os.version="3.9" \
-    name="Plone 5.2" \
+    os.version="3.10" \
+    name="Plone 4.3" \
     description="Plone image, based on Unified Installer" \
     maintainer="Plone Community"
 
@@ -31,28 +30,28 @@ RUN apk add --no-cache --virtual .build-deps \
     libxml2-dev \
     libxslt-dev \
     pcre-dev \
-    libffi-dev \
-&& wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller.tgz \
-&& echo "$PLONE_MD5  Plone.tgz" | md5sum -c - \
-&& tar -zxvf Plone.tgz \
-&& cp -rv ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/base_skeleton/* /plone/instance/ \
-&& cp -v ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
-&& pip install pip==$PIP setuptools==$SETUPTOOLS zc.buildout==$ZC_BUILDOUT wheel==$WHEEL \
-&& cd /plone/instance \
-&& buildout \
-&& ln -s /data/filestorage/ /plone/instance/var/filestorage \
-&& ln -s /data/blobstorage /plone/instance//var/blobstorage \
-&& chown -R plone:plone /plone /data \
-&& rm -rf /Plone* \
-&& apk del .build-deps \
-&& apk add --no-cache --virtual .run-deps \
+ && wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION-UnifiedInstaller.tgz \
+ && echo "$PLONE_MD5  Plone.tgz" | md5sum -c - \
+ && tar -zxvf Plone.tgz \
+ && cp -rv ./Plone-$PLONE_VERSION-UnifiedInstaller/base_skeleton/* /plone/instance/ \
+ && cp -v ./Plone-$PLONE_VERSION-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
+ && pip install pip==$PIP setuptools==$SETUPTOOLS zc.buildout==$ZC_BUILDOUT wheel==$WHEEL \
+ && cd /plone/instance \
+ && buildout \
+ && rm -rf bin/buildout \
+ && ln -s /data/filestorage/ /plone/instance/var/filestorage \
+ && ln -s /data/blobstorage /plone/instance//var/blobstorage \
+ && chown -R plone:plone /plone /data \
+ && rm -rf /Plone* \
+ && apk del .build-deps \
+ && apk add --no-cache --virtual .run-deps \
     su-exec \
     bash \
     rsync \
     libxml2 \
     libxslt \
     libjpeg-turbo \
-&& rm -rf /plone/buildout-cache/downloads/*
+ && rm -rf /plone/buildout-cache/downloads/*
 
 VOLUME /data
 
diff --git a/plone_alpine/buildout.cfg b/plone_4-alpine/buildout.cfg
similarity index 55%
copy from plone_alpine/buildout.cfg
copy to plone_4-alpine/buildout.cfg
index b6eedaf..57e2b81 100644
--- a/plone_alpine/buildout.cfg
+++ b/plone_4-alpine/buildout.cfg
@@ -14,9 +14,6 @@ parts +=
 [client1]
 recipe =
 
-[instance_base]
-resources = ${buildout:directory}/resources
-
 [zeo]
 <= zeoserver_base
 recipe = plone.recipe.zeoserver
@@ -34,14 +31,30 @@ setuptools =
 zc.buildout =
 
 # The following part definition lists the versions picked:
-bobtemplates.plone = 4.1.0
+Pillow = 5.3.0
+plone.recipe.command = 1.1
+plone.recipe.precompiler = 0.6
+collective.recipe.backup = 4.0.1
+Unidecode = 0.04.16
+
+MarkupSafe = 1.0
+bobtemplates.plone = 3.5.1
 mr.bob = 0.1.2
-regex = 2019.6.8
+regex = 2018.8.29
 
 # Required by:
-# plone.recipe.zeoserver==2.0.1
-ZopeUndo = 4.3
+# bobtemplates.plone==3.5.1
+case-conversion = 2.1.0
 
 # Required by:
-# bobtemplates.plone==4.0.4
-case-conversion = 2.1.0
+# bobtemplates.plone==3.5.1
+python-slugify = 1.2.6
+
+Products.DocFinderTab = 1.0.5
+collective.checkdocs = 0.2
+zest.pocompile = 1.4
+
+# Required by:
+# bobtemplates.plone==3.5.1
+# zest.releaser==6.15.0
+colorama = 0.4.0
diff --git a/plone_alpine/docker-entrypoint.sh b/plone_4-alpine/docker-entrypoint.sh
similarity index 21%
copy from plone_alpine/docker-entrypoint.sh
copy to plone_4-alpine/docker-entrypoint.sh
index a364f4c..ee6b4f9 100755
--- a/plone_alpine/docker-entrypoint.sh
+++ b/plone_4-alpine/docker-entrypoint.sh
@@ -1,33 +1,56 @@
 #!/bin/bash
 set -e
 
-COMMANDS="adduser debug fg foreground help kill logreopen logtail reopen_transcript run show status stop wait"
-START="console start restart"
+COMMANDS="debug help logtail show stop adduser fg kill quit run wait console foreground logreopen reload shell status"
+START="start restart zeoserver"
+CMD="bin/instance"
 
 su-exec plone python /docker-initialize.py
 
 if [ -e "custom.cfg" ]; then
   if [ ! -e "bin/develop" ]; then
-    buildout -c custom.cfg
-    chown -R plone:plone /plone
+    su-exec plone buildout -c custom.cfg
     su-exec plone python /docker-initialize.py
   fi
 fi
 
-# ZEO Server
 if [[ "$1" == "zeo"* ]]; then
-  exec su-exec plone bin/$1 fg
+  CMD="bin/$1"
 fi
 
-# Plone instance start
-if [[ $START == *"$1"* ]]; then
-  exec su-exec plone bin/instance console
+if [ -z "$HEALTH_CHECK_TIMEOUT" ]; then
+  HEALTH_CHECK_TIMEOUT=1
 fi
 
-# Plone instance helpers
-if [[ $COMMANDS == *"$1"* ]]; then
-  exec su-exec plone bin/instance "$@"
+if [ -z "$HEALTH_CHECK_INTERVAL" ]; then
+  HEALTH_CHECK_INTERVAL=1
 fi
 
-# Custom
-exec "$@"
+if [[ $START == *"$1"* ]]; then
+  _stop() {
+    su-exec plone $CMD stop
+    kill -TERM $child 2>/dev/null
+  }
+
+  trap _stop SIGTERM SIGINT
+  su-exec plone $CMD start
+  su-exec plone $CMD logtail &
+  child=$!
+
+  pid=`$CMD status | sed 's/[^0-9]*//g'`
+  if [ ! -z "$pid" ]; then
+    echo "Application running on pid=$pid"
+    sleep "$HEALTH_CHECK_TIMEOUT"
+    while kill -0 "$pid" 2> /dev/null; do
+      sleep "$HEALTH_CHECK_INTERVAL"
+    done
+  else
+    echo "Application didn't start normally. Shutting down!"
+    _stop
+  fi
+else
+  if [[ $COMMANDS == *"$1"* ]]; then
+    exec su-exec plone bin/instance "$@"
+  fi
+  exec "$@"
+fi
diff --git a/plone_alpine/docker-initialize.py b/plone_4-alpine/docker-initialize.py
similarity index 100%
copy from plone_alpine/docker-initialize.py
copy to plone_4-alpine/docker-initialize.py
diff --git a/plone_python2/Dockerfile b/plone_4/Dockerfile
similarity index 68%
copy from plone_python2/Dockerfile
copy to plone_4/Dockerfile
index a85463b..acee2a9 100644
--- a/plone_python2/Dockerfile
+++ b/plone_4/Dockerfile
@@ -1,18 +1,17 @@
 FROM python:2.7-slim-stretch
 
-ENV PIP=19.0.3 \
+ENV PIP=9.0.3 \
     ZC_BUILDOUT=2.13.1 \
-    SETUPTOOLS=41.0.0 \
+    SETUPTOOLS=40.8.0 \
     WHEEL=0.33.1 \
-    PLONE_MAJOR=5.2 \
-    PLONE_VERSION=5.2 \
-    PLONE_VERSION_RELEASE=5.2.0 \
-    PLONE_MD5=211ff749422611db2e448dea639e1fba
+    PLONE_MAJOR=4.3 \
+    PLONE_VERSION=4.3.19 \
+    PLONE_MD5=04ed5beac7fb8504f06a36d44e407b06
 
 LABEL plone=$PLONE_VERSION \
     os="debian" \
     os.version="9" \
-    name="Plone 5.2" \
+    name="Plone 4.3" \
     description="Plone image, based on Unified Installer" \
     maintainer="Plone Community"
 
@@ -21,18 +20,19 @@ RUN useradd --system -m -d /plone -U -u 500 plone \
 
 COPY buildout.cfg /plone/instance/
 
-RUN buildDeps="dpkg-dev gcc libbz2-dev libc6-dev libffi-dev libjpeg62-turbo-dev libopenjp2-7-dev libpcre3-dev libssl-dev libtiff5-dev libxml2-dev libxslt1-dev wget zlib1g-dev" \
+RUN buildDeps="dpkg-dev gcc libbz2-dev libc6-dev libjpeg62-turbo-dev libopenjp2-7-dev libpcre3-dev libssl-dev libtiff5-dev libxml2-dev libxslt1-dev wget zlib1g-dev" \
  && runDeps="gosu libjpeg62 libopenjp2-7 libtiff5 libxml2 libxslt1.1 lynx netcat poppler-utils rsync wv" \
  && apt-get update \
  && apt-get install -y --no-install-recommends $buildDeps \
- && wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller.tgz \
+ && wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION-UnifiedInstaller.tgz \
  && echo "$PLONE_MD5 Plone.tgz" | md5sum -c - \
  && tar -xzf Plone.tgz \
- && cp -rv ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/base_skeleton/* /plone/instance/ \
- && cp -v ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
+ && cp -rv ./Plone-$PLONE_VERSION-UnifiedInstaller/base_skeleton/* /plone/instance/ \
+ && cp -v ./Plone-$PLONE_VERSION-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
  && pip install pip==$PIP setuptools==$SETUPTOOLS zc.buildout==$ZC_BUILDOUT wheel==$WHEEL \
  && cd /plone/instance \
  && buildout \
+ && rm -rf bin/buildout \
  && ln -s /data/filestorage/ /plone/instance/var/filestorage \
  && ln -s /data/blobstorage /plone/instance/var/blobstorage \
  && chown -R plone:plone /plone /data \
diff --git a/plone_alpine/buildout.cfg b/plone_4/buildout.cfg
similarity index 55%
copy from plone_alpine/buildout.cfg
copy to plone_4/buildout.cfg
index b6eedaf..57e2b81 100644
--- a/plone_alpine/buildout.cfg
+++ b/plone_4/buildout.cfg
@@ -14,9 +14,6 @@ parts +=
 [client1]
 recipe =
 
-[instance_base]
-resources = ${buildout:directory}/resources
-
 [zeo]
 <= zeoserver_base
 recipe = plone.recipe.zeoserver
@@ -34,14 +31,30 @@ setuptools =
 zc.buildout =
 
 # The following part definition lists the versions picked:
-bobtemplates.plone = 4.1.0
+Pillow = 5.3.0
+plone.recipe.command = 1.1
+plone.recipe.precompiler = 0.6
+collective.recipe.backup = 4.0.1
+Unidecode = 0.04.16
+
+MarkupSafe = 1.0
+bobtemplates.plone = 3.5.1
 mr.bob = 0.1.2
-regex = 2019.6.8
+regex = 2018.8.29
 
 # Required by:
-# plone.recipe.zeoserver==2.0.1
-ZopeUndo = 4.3
+# bobtemplates.plone==3.5.1
+case-conversion = 2.1.0
 
 # Required by:
-# bobtemplates.plone==4.0.4
-case-conversion = 2.1.0
+# bobtemplates.plone==3.5.1
+python-slugify = 1.2.6
+
+Products.DocFinderTab = 1.0.5
+collective.checkdocs = 0.2
+zest.pocompile = 1.4
+
+# Required by:
+# bobtemplates.plone==3.5.1
+# zest.releaser==6.15.0
+colorama = 0.4.0
diff --git a/plone_python2/docker-entrypoint.sh b/plone_4/docker-entrypoint.sh
similarity index 21%
copy from plone_python2/docker-entrypoint.sh
copy to plone_4/docker-entrypoint.sh
index b28d4ac..07c3968 100755
--- a/plone_python2/docker-entrypoint.sh
+++ b/plone_4/docker-entrypoint.sh
@@ -1,33 +1,56 @@
 #!/bin/bash
 set -e
 
-COMMANDS="adduser debug fg foreground help kill logreopen logtail reopen_transcript run show status stop wait"
-START="console start restart"
+COMMANDS="debug help logtail show stop adduser fg kill quit run wait console foreground logreopen reload shell status"
+START="start restart zeoserver"
+CMD="bin/instance"
 
 gosu plone python /docker-initialize.py
 
 if [ -e "custom.cfg" ]; then
   if [ ! -e "bin/develop" ]; then
-    buildout -c custom.cfg
-    chown -R plone:plone /plone
+    gosu plone buildout -c custom.cfg
     gosu plone python /docker-initialize.py
   fi
 fi
 
-# ZEO Server
 if [[ "$1" == "zeo"* ]]; then
-  exec gosu plone bin/$1 fg
+  CMD="bin/$1"
 fi
 
-# Plone instance start
-if [[ $START == *"$1"* ]]; then
-  exec gosu plone bin/instance console
+if [ -z "$HEALTH_CHECK_TIMEOUT" ]; then
+  HEALTH_CHECK_TIMEOUT=1
 fi
 
-# Plone instance helpers
-if [[ $COMMANDS == *"$1"* ]]; then
-  exec gosu plone bin/instance "$@"
+if [ -z "$HEALTH_CHECK_INTERVAL" ]; then
+  HEALTH_CHECK_INTERVAL=1
 fi
 
-# Custom
-exec "$@"
+if [[ $START == *"$1"* ]]; then
+  _stop() {
+    gosu plone $CMD stop
+    kill -TERM $child 2>/dev/null
+  }
+
+  trap _stop SIGTERM SIGINT
+  gosu plone $CMD start
+  gosu plone $CMD logtail &
+  child=$!
+
+  pid=`$CMD status | sed 's/[^0-9]*//g'`
+  if [ ! -z "$pid" ]; then
+    echo "Application running on pid=$pid"
+    sleep "$HEALTH_CHECK_TIMEOUT"
+    while kill -0 "$pid" 2> /dev/null; do
+      sleep "$HEALTH_CHECK_INTERVAL"
+    done
+  else
+    echo "Application didn't start normally. Shutting down!"
+    _stop
+  fi
+else
+  if [[ $COMMANDS == *"$1"* ]]; then
+    exec gosu plone bin/instance "$@"
+  fi
+  exec "$@"
+fi
diff --git a/plone_alpine/docker-initialize.py b/plone_4/docker-initialize.py
similarity index 100%
copy from plone_alpine/docker-initialize.py
copy to plone_4/docker-initialize.py
diff --git a/plone_alpine/Dockerfile b/plone_5.1-alpine/Dockerfile
similarity index 70%
copy from plone_alpine/Dockerfile
copy to plone_5.1-alpine/Dockerfile
index 1861591..db41fe9 100644
--- a/plone_alpine/Dockerfile
+++ b/plone_5.1-alpine/Dockerfile
@@ -1,18 +1,17 @@
-FROM python:3.7-alpine3.9
+FROM python:2.7-alpine
 
-ENV PIP=19.0.3 \
-    ZC_BUILDOUT=2.13.1 \
-    SETUPTOOLS=41.0.0 \
-    WHEEL=0.33.1 \
-    PLONE_MAJOR=5.2 \
-    PLONE_VERSION=5.2 \
-    PLONE_VERSION_RELEASE=5.2.0 \
-    PLONE_MD5=211ff749422611db2e448dea639e1fba
+ENV PIP=19.3 \
+    ZC_BUILDOUT=2.13.2 \
+    SETUPTOOLS=41.4.0 \
+    WHEEL=0.33.6 \
+    PLONE_MAJOR=5.1 \
+    PLONE_VERSION=5.1.6 \
+    PLONE_MD5=ff161c4a9b484a43f74b54bd0ff0ec06
 
 LABEL plone=$PLONE_VERSION \
     os="alpine" \
-    os.version="3.9" \
-    name="Plone 5.2" \
+    os.version="3.10" \
+    name="Plone 5.1" \
     description="Plone image, based on Unified Installer" \
     maintainer="Plone Community"
 
@@ -32,11 +31,11 @@ RUN apk add --no-cache --virtual .build-deps \
     libxslt-dev \
     pcre-dev \
     libffi-dev \
-&& wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller.tgz \
+&& wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION-UnifiedInstaller.tgz \
 && echo "$PLONE_MD5  Plone.tgz" | md5sum -c - \
 && tar -zxvf Plone.tgz \
-&& cp -rv ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/base_skeleton/* /plone/instance/ \
-&& cp -v ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
+&& cp -rv ./Plone-$PLONE_VERSION-UnifiedInstaller/base_skeleton/* /plone/instance/ \
+&& cp -v ./Plone-$PLONE_VERSION-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
 && pip install pip==$PIP setuptools==$SETUPTOOLS zc.buildout==$ZC_BUILDOUT wheel==$WHEEL \
 && cd /plone/instance \
 && buildout \
diff --git a/plone_alpine/buildout.cfg b/plone_5.1-alpine/buildout.cfg
similarity index 55%
copy from plone_alpine/buildout.cfg
copy to plone_5.1-alpine/buildout.cfg
index b6eedaf..3c172d6 100644
--- a/plone_alpine/buildout.cfg
+++ b/plone_5.1-alpine/buildout.cfg
@@ -14,9 +15,6 @@ parts +=
 [client1]
 recipe =
 
-[instance_base]
-resources = ${buildout:directory}/resources
-
 [zeo]
 <= zeoserver_base
 recipe = plone.recipe.zeoserver
@@ -34,14 +32,30 @@ setuptools =
 zc.buildout =
 
 # The following part definition lists the versions picked:
-bobtemplates.plone = 4.1.0
+Pillow = 5.3.0
+plone.recipe.command = 1.1
+plone.recipe.precompiler = 0.6
+collective.recipe.backup = 4.0.1
+Unidecode = 0.04.16
+
+MarkupSafe = 1.0
+bobtemplates.plone = 3.5.1
 mr.bob = 0.1.2
-regex = 2019.6.8
+regex = 2018.8.29
 
 # Required by:
-# plone.recipe.zeoserver==2.0.1
-ZopeUndo = 4.3
+# bobtemplates.plone==3.5.1
+case-conversion = 2.1.0
 
 # Required by:
-# bobtemplates.plone==4.0.4
-case-conversion = 2.1.0
+# bobtemplates.plone==3.5.1
+python-slugify = 1.2.6
+
+Products.DocFinderTab = 1.0.5
+collective.checkdocs = 0.2
+zest.pocompile = 1.4
+
+# Required by:
+# bobtemplates.plone==3.5.1
+# zest.releaser==6.15.0
+colorama = 0.4.0
diff --git a/plone_alpine/docker-entrypoint.sh b/plone_5.1-alpine/docker-entrypoint.sh
similarity index 21%
copy from plone_alpine/docker-entrypoint.sh
copy to plone_5.1-alpine/docker-entrypoint.sh
index a364f4c..ee6b4f9 100755
--- a/plone_alpine/docker-entrypoint.sh
+++ b/plone_5.1-alpine/docker-entrypoint.sh
@@ -1,33 +1,56 @@
 #!/bin/bash
 set -e
 
-COMMANDS="adduser debug fg foreground help kill logreopen logtail reopen_transcript run show status stop wait"
-START="console start restart"
+COMMANDS="debug help logtail show stop adduser fg kill quit run wait console foreground logreopen reload shell status"
+START="start restart zeoserver"
+CMD="bin/instance"
 
 su-exec plone python /docker-initialize.py
 
 if [ -e "custom.cfg" ]; then
   if [ ! -e "bin/develop" ]; then
-    buildout -c custom.cfg
-    chown -R plone:plone /plone
+    su-exec plone buildout -c custom.cfg
     su-exec plone python /docker-initialize.py
   fi
 fi
 
-# ZEO Server
 if [[ "$1" == "zeo"* ]]; then
-  exec su-exec plone bin/$1 fg
+  CMD="bin/$1"
 fi
 
-# Plone instance start
-if [[ $START == *"$1"* ]]; then
-  exec su-exec plone bin/instance console
+if [ -z "$HEALTH_CHECK_TIMEOUT" ]; then
+  HEALTH_CHECK_TIMEOUT=1
 fi
 
-# Plone instance helpers
-if [[ $COMMANDS == *"$1"* ]]; then
-  exec su-exec plone bin/instance "$@"
+if [ -z "$HEALTH_CHECK_INTERVAL" ]; then
+  HEALTH_CHECK_INTERVAL=1
 fi
 
-# Custom
-exec "$@"
+if [[ $START == *"$1"* ]]; then
+  _stop() {
+    su-exec plone $CMD stop
+    kill -TERM $child 2>/dev/null
+  }
+
+  trap _stop SIGTERM SIGINT
+  su-exec plone $CMD start
+  su-exec plone $CMD logtail &
+  child=$!
+
+  pid=`$CMD status | sed 's/[^0-9]*//g'`
+  if [ ! -z "$pid" ]; then
+    echo "Application running on pid=$pid"
+    sleep "$HEALTH_CHECK_TIMEOUT"
+    while kill -0 "$pid" 2> /dev/null; do
+      sleep "$HEALTH_CHECK_INTERVAL"
+    done
+  else
+    echo "Application didn't start normally. Shutting down!"
+    _stop
+  fi
+else
+  if [[ $COMMANDS == *"$1"* ]]; then
+    exec su-exec plone bin/instance "$@"
+  fi
+  exec "$@"
+fi
diff --git a/plone_alpine/docker-initialize.py b/plone_5.1-alpine/docker-initialize.py
similarity index 100%
copy from plone_alpine/docker-initialize.py
copy to plone_5.1-alpine/docker-initialize.py
diff --git a/plone_python2/Dockerfile b/plone_5.1/Dockerfile
similarity index 66%
copy from plone_python2/Dockerfile
copy to plone_5.1/Dockerfile
index a85463b..66a54ac 100644
--- a/plone_python2/Dockerfile
+++ b/plone_5.1/Dockerfile
@@ -1,18 +1,17 @@
 FROM python:2.7-slim-stretch
 
-ENV PIP=19.0.3 \
-    ZC_BUILDOUT=2.13.1 \
-    SETUPTOOLS=41.0.0 \
-    WHEEL=0.33.1 \
-    PLONE_MAJOR=5.2 \
-    PLONE_VERSION=5.2 \
-    PLONE_VERSION_RELEASE=5.2.0 \
-    PLONE_MD5=211ff749422611db2e448dea639e1fba
+ENV PIP=19.3 \
+    ZC_BUILDOUT=2.13.2 \
+    SETUPTOOLS=41.4.0 \
+    WHEEL=0.33.6 \
+    PLONE_MAJOR=5.1 \
+    PLONE_VERSION=5.1.6 \
+    PLONE_MD5=ff161c4a9b484a43f74b54bd0ff0ec06
 
 LABEL plone=$PLONE_VERSION \
     os="debian" \
     os.version="9" \
-    name="Plone 5.2" \
+    name="Plone 5.1" \
     description="Plone image, based on Unified Installer" \
     maintainer="Plone Community"
 
@@ -21,15 +20,15 @@ RUN useradd --system -m -d /plone -U -u 500 plone \
 
 COPY buildout.cfg /plone/instance/
 
-RUN buildDeps="dpkg-dev gcc libbz2-dev libc6-dev libffi-dev libjpeg62-turbo-dev libopenjp2-7-dev libpcre3-dev libssl-dev libtiff5-dev libxml2-dev libxslt1-dev wget zlib1g-dev" \
+RUN buildDeps="dpkg-dev gcc libbz2-dev libc6-dev libjpeg62-turbo-dev libopenjp2-7-dev libpcre3-dev libssl-dev libtiff5-dev libxml2-dev libxslt1-dev wget zlib1g-dev" \
  && runDeps="gosu libjpeg62 libopenjp2-7 libtiff5 libxml2 libxslt1.1 lynx netcat poppler-utils rsync wv" \
  && apt-get update \
  && apt-get install -y --no-install-recommends $buildDeps \
- && wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller.tgz \
+ && wget -O Plone.tgz https://launchpad.net/plone/$PLONE_MAJOR/$PLONE_VERSION/+download/Plone-$PLONE_VERSION-UnifiedInstaller.tgz \
  && echo "$PLONE_MD5 Plone.tgz" | md5sum -c - \
  && tar -xzf Plone.tgz \
- && cp -rv ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/base_skeleton/* /plone/instance/ \
- && cp -v ./Plone-$PLONE_VERSION_RELEASE-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
+ && cp -rv ./Plone-$PLONE_VERSION-UnifiedInstaller/base_skeleton/* /plone/instance/ \
+ && cp -v ./Plone-$PLONE_VERSION-UnifiedInstaller/buildout_templates/buildout.cfg /plone/instance/buildout-base.cfg \
  && pip install pip==$PIP setuptools==$SETUPTOOLS zc.buildout==$ZC_BUILDOUT wheel==$WHEEL \
  && cd /plone/instance \
  && buildout \
diff --git a/plone_alpine/buildout.cfg b/plone_5.1/buildout.cfg
similarity index 55%
copy from plone_alpine/buildout.cfg
copy to plone_5.1/buildout.cfg
index b6eedaf..3c172d6 100644
--- a/plone_alpine/buildout.cfg
+++ b/plone_5.1/buildout.cfg
@@ -14,9 +15,6 @@ parts +=
 [client1]
 recipe =
 
-[instance_base]
-resources = ${buildout:directory}/resources
-
 [zeo]
 <= zeoserver_base
 recipe = plone.recipe.zeoserver
@@ -34,14 +32,30 @@ setuptools =
 zc.buildout =
 
 # The following part definition lists the versions picked:
-bobtemplates.plone = 4.1.0
+Pillow = 5.3.0
+plone.recipe.command = 1.1
+plone.recipe.precompiler = 0.6
+collective.recipe.backup = 4.0.1
+Unidecode = 0.04.16
+
+MarkupSafe = 1.0
+bobtemplates.plone = 3.5.1
 mr.bob = 0.1.2
-regex = 2019.6.8
+regex = 2018.8.29
 
 # Required by:
-# plone.recipe.zeoserver==2.0.1
-ZopeUndo = 4.3
+# bobtemplates.plone==3.5.1
+case-conversion = 2.1.0
 
 # Required by:
-# bobtemplates.plone==4.0.4
-case-conversion = 2.1.0
+# bobtemplates.plone==3.5.1
+python-slugify = 1.2.6
+
+Products.DocFinderTab = 1.0.5
+collective.checkdocs = 0.2
+zest.pocompile = 1.4
+
+# Required by:
+# bobtemplates.plone==3.5.1
+# zest.releaser==6.15.0
+colorama = 0.4.0
diff --git a/plone_python2/docker-entrypoint.sh b/plone_5.1/docker-entrypoint.sh
similarity index 21%
copy from plone_python2/docker-entrypoint.sh
copy to plone_5.1/docker-entrypoint.sh
index b28d4ac..07c3968 100755
--- a/plone_python2/docker-entrypoint.sh
+++ b/plone_5.1/docker-entrypoint.sh
@@ -1,33 +1,56 @@
 #!/bin/bash
 set -e
 
-COMMANDS="adduser debug fg foreground help kill logreopen logtail reopen_transcript run show status stop wait"
-START="console start restart"
+COMMANDS="debug help logtail show stop adduser fg kill quit run wait console foreground logreopen reload shell status"
+START="start restart zeoserver"
+CMD="bin/instance"
 
 gosu plone python /docker-initialize.py
 
 if [ -e "custom.cfg" ]; then
   if [ ! -e "bin/develop" ]; then
-    buildout -c custom.cfg
-    chown -R plone:plone /plone
+    gosu plone buildout -c custom.cfg
     gosu plone python /docker-initialize.py
   fi
 fi
 
-# ZEO Server
 if [[ "$1" == "zeo"* ]]; then
-  exec gosu plone bin/$1 fg
+  CMD="bin/$1"
 fi
 
-# Plone instance start
-if [[ $START == *"$1"* ]]; then
-  exec gosu plone bin/instance console
+if [ -z "$HEALTH_CHECK_TIMEOUT" ]; then
+  HEALTH_CHECK_TIMEOUT=1
 fi
 
-# Plone instance helpers
-if [[ $COMMANDS == *"$1"* ]]; then
-  exec gosu plone bin/instance "$@"
+if [ -z "$HEALTH_CHECK_INTERVAL" ]; then
+  HEALTH_CHECK_INTERVAL=1
 fi
 
-# Custom
-exec "$@"
+if [[ $START == *"$1"* ]]; then
+  _stop() {
+    gosu plone $CMD stop
+    kill -TERM $child 2>/dev/null
+  }
+
+  trap _stop SIGTERM SIGINT
+  gosu plone $CMD start
+  gosu plone $CMD logtail &
+  child=$!
+
+  pid=`$CMD status | sed 's/[^0-9]*//g'`
+  if [ ! -z "$pid" ]; then
+    echo "Application running on pid=$pid"
+    sleep "$HEALTH_CHECK_TIMEOUT"
+    while kill -0 "$pid" 2> /dev/null; do
+      sleep "$HEALTH_CHECK_INTERVAL"
+    done
+  else
+    echo "Application didn't start normally. Shutting down!"
+    _stop
+  fi
+else
+  if [[ $COMMANDS == *"$1"* ]]; then
+    exec gosu plone bin/instance "$@"
+  fi
+  exec "$@"
+fi
diff --git a/plone_alpine/docker-initialize.py b/plone_5.1/docker-initialize.py
similarity index 100%
copy from plone_alpine/docker-initialize.py
copy to plone_5.1/docker-initialize.py
diff --git a/plone_alpine/Dockerfile b/plone_alpine/Dockerfile
index 1861591..1e27a3c 100644
--- a/plone_alpine/Dockerfile
+++ b/plone_alpine/Dockerfile
@@ -1,4 +1,4 @@
-FROM python:3.7-alpine3.9
+FROM python:3.7-alpine
 
 ENV PIP=19.0.3 \
     ZC_BUILDOUT=2.13.1 \
@@ -11,7 +11,7 @@ ENV PIP=19.0.3 \
 
 LABEL plone=$PLONE_VERSION \
     os="alpine" \
-    os.version="3.9" \
+    os.version="3.10" \
     name="Plone 5.2" \
     description="Plone image, based on Unified Installer" \
     maintainer="Plone Community"

@yosifkit
Copy link
Member

Build test of #6870; e7c6a93; amd64 (plone):

$ bashbrew build plone:5.2.0
Building bashbrew/cache:2ad4b4886297f44b77faabb0193702e1596bed6382c099b3c7c7e3c478363b1c (plone:5.2.0)
Tagging plone:5.2.0
Tagging plone:5.2
Tagging plone:5
Tagging plone:latest

$ test/run.sh plone:5.2.0
testing plone:5.2.0
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7]......passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7]......passed


$ bashbrew build plone:5.2.0-alpine
Building bashbrew/cache:cb610250ad049502d79d671d3dcd0cfb54ee7c9e5397a8423f06797ea591637c (plone:5.2.0-alpine)
Tagging plone:5.2.0-alpine
Tagging plone:5.2-alpine
Tagging plone:5-alpine
Tagging plone:alpine

$ test/run.sh plone:5.2.0-alpine
testing plone:5.2.0-alpine
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7].....passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7]......passed


$ bashbrew build plone:5.2.0-python2
Building bashbrew/cache:1bbd0b0a8fb76af076e1daffd724843d646310bfc0f6880aca5029dbc37f60a8 (plone:5.2.0-python2)
Tagging plone:5.2.0-python2
Tagging plone:5.2-python2
Tagging plone:5-python2
Tagging plone:python2

$ test/run.sh plone:5.2.0-python2
testing plone:5.2.0-python2
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7].....passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7].....passed


$ bashbrew build plone:5.1.6
Building bashbrew/cache:2b55fd61ceca761ab476b10a350283deb45d45bf38560d77494c0fed418bc35a (plone:5.1.6)
Tagging plone:5.1.6
Tagging plone:5.1

$ test/run.sh plone:5.1.6
testing plone:5.1.6
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7]....passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7]....passed


$ bashbrew build plone:5.1.6-alpine
Building bashbrew/cache:0449704c201020c6286d15eb6af4b6e2225c89d2278307acd134d41e01dcfbfd (plone:5.1.6-alpine)
Tagging plone:5.1.6-alpine
Tagging plone:5.1-alpine

$ test/run.sh plone:5.1.6-alpine
testing plone:5.1.6-alpine
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7]....passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7]....passed


$ bashbrew build plone:4.3.19
Building bashbrew/cache:4e0adb05719ffec0a1c89908946b35eac87e53304ead99487f4d618bbb0ef12f (plone:4.3.19)
Tagging plone:4.3.19
Tagging plone:4.3
Tagging plone:4

$ test/run.sh plone:4.3.19
testing plone:4.3.19
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7]....passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7]....passed


$ bashbrew build plone:4.3.19-alpine
Building bashbrew/cache:ac7de5038bdc5e6277012245135222da4321937f30b57d0c43d114719d7d6473 (plone:4.3.19-alpine)
Tagging plone:4.3.19-alpine
Tagging plone:4.3-alpine
Tagging plone:4-alpine

$ test/run.sh plone:4.3.19-alpine
testing plone:4.3.19-alpine
	'utc' [1/7]...passed
	'cve-2014--shellshock' [2/7]...passed
	'no-hard-coded-passwords' [3/7]...passed
	'override-cmd' [4/7]...passed
	'plone-basics' [5/7]....passed
	'plone-addons' [6/7]...passed
	'plone-zeoclient' [7/7]....passed

@yosifkit yosifkit merged commit 56b93aa into docker-library:master Oct 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants