From 29ece18de54261608668d1b4c3e69d77c644234f Mon Sep 17 00:00:00 2001 From: buanet Date: Thu, 9 Sep 2021 20:11:43 +0200 Subject: [PATCH 1/2] testing --- CHANGELOG.md | 1 + debian/scripts/maintenance.sh | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 634ddfe..32ac949 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## Changelog ### v5.2.0-beta3 (2021-09-04) +* changes for backitup compatibility * reducing layers in dockerfile * making hostname check mandatory for startup * optimize startup log diff --git a/debian/scripts/maintenance.sh b/debian/scripts/maintenance.sh index 6d384db..a02a60a 100644 --- a/debian/scripts/maintenance.sh +++ b/debian/scripts/maintenance.sh @@ -5,6 +5,7 @@ ############################ autoconfirm=no # could be set to true by commandline option +killbyname=no # could be set to true by commandline option / undocumented, only for use with backitup restore scripts #################################### ##### declaration of functions ##### @@ -46,7 +47,19 @@ check_status() { # turn maintenance mode ON switch_on() { - if [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ] && [ "$autoconfirm" == "no" ] # maintenance mode OFF / autoconfirm = no + if [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ] && [ "$killbyname" == "yes" ] # maintenance mode OFF / killbyname = yes / undocumented, only for use with backitup restore scripts + then + echo 'This command will activate maintenance mode and stop all node processes.' + echo 'Activating maintenance mode...' + echo "maintenance" > /opt/scripts/.docker_config/.healthcheck + sleep 1 + echo 'Done.' + echo 'Stopping ioBroker...' + pkill node + sleep 1 + echo 'Done.' + exit 0 + elif [ $(cat /opt/scripts/.docker_config/.healthcheck) != 'maintenance' ] && [ "$autoconfirm" == "no" ] # maintenance mode OFF / autoconfirm = no then echo 'You are now going to stop ioBroker and activating maintenance mode for this container.' read -p 'Do you want to continue [yes/no]? ' A @@ -183,6 +196,10 @@ for i in $reverse; do autoconfirm=yes # setting autoconfrm option to "yes" shift ;; + -kbn|--killbyname) + killbyname=yes # setting killbyname option to "yes" + shift + ;; -a=*|--argument=*) # dummy exaple for parsing option with value ARGUMENT="${i#*=}" shift From da48a32508c60da434229f683640e3da158cb619 Mon Sep 17 00:00:00 2001 From: buanet Date: Fri, 10 Sep 2021 09:42:11 +0200 Subject: [PATCH 2/2] preparing beta4 --- .VERSION | 2 +- CHANGELOG.md | 14 +++++++++----- debian/node12/Dockerfile | 18 +++++++++++++----- debian/node14/Dockerfile | 18 +++++++++++++----- 4 files changed, 36 insertions(+), 16 deletions(-) diff --git a/.VERSION b/.VERSION index a9e5fdc..7c01dfe 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v5.2.0-beta3 \ No newline at end of file +v5.2.0-beta4 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 32ac949..0112ef6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,14 @@ ## Changelog -### v5.2.0-beta3 (2021-09-04) -* changes for backitup compatibility -* reducing layers in dockerfile -* making hostname check mandatory for startup -* optimize startup log +### v5.2.0-beta4 (2021-09-10) +* adding iobroker user rights for "gosu" +* adding more labels in OCI standard format +* fixing workdir bug +* adding backitup compatibility +* v5.2.0-beta3 (2021-09-04) + * reducing layers in dockerfile + * making hostname check mandatory for startup + * optimize startup log * v5.2.0-beta2 (2021-08-28) * redesign maintenance script * switching amd64 base image to debian bullseye slim diff --git a/debian/node12/Dockerfile b/debian/node12/Dockerfile index f4757e6..d594501 100644 --- a/debian/node12/Dockerfile +++ b/debian/node12/Dockerfile @@ -1,9 +1,12 @@ FROM debian:bullseye-slim -LABEL org.opencontainers.image.title="ioBroker Docker Image" \ - org.opencontainers.image.description="Docker image for ioBroker smarthome software" \ - org.opencontainers.image.authors="info@buanet.de" \ +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.created="${DATI}" @@ -53,11 +56,13 @@ RUN apt-get update \ && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ && rm -rf /var/lib/apt/lists/* -# Setting up iobroker-user (shell and home directory) +# Setting up iobroker-user (shell, home dir and rights) RUN chsh -s /bin/bash iobroker \ && usermod --home /opt/iobroker iobroker \ && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu # Setting up default ENVs ENV DEBIAN_FRONTEND="teletype" \ @@ -71,6 +76,9 @@ ENV DEBIAN_FRONTEND="teletype" \ # Expose default admin ui port EXPOSE 8081 +# Change work dir +WORKDIR /opt/iobroker/ + # Healthcheck HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] diff --git a/debian/node14/Dockerfile b/debian/node14/Dockerfile index 36ec884..6c9efb2 100644 --- a/debian/node14/Dockerfile +++ b/debian/node14/Dockerfile @@ -1,9 +1,12 @@ FROM debian:bullseye-slim -LABEL org.opencontainers.image.title="ioBroker Docker Image" \ - org.opencontainers.image.description="Docker image for ioBroker smarthome software" \ - org.opencontainers.image.authors="info@buanet.de" \ +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ org.opencontainers.image.version="${VERSION}" \ org.opencontainers.image.created="${DATI}" @@ -53,11 +56,13 @@ RUN apt-get update \ && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ && rm -rf /var/lib/apt/lists/* -# Setting up iobroker-user (shell and home directory) +# Setting up iobroker-user (shell, home dir and rights) RUN chsh -s /bin/bash iobroker \ && usermod --home /opt/iobroker iobroker \ && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu # Setting up default ENVs ENV DEBIAN_FRONTEND="teletype" \ @@ -71,6 +76,9 @@ ENV DEBIAN_FRONTEND="teletype" \ # Expose default admin ui port EXPOSE 8081 +# Change work dir +WORKDIR /opt/iobroker/ + # Healthcheck HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]