diff --git a/.VERSION b/.VERSION index 1082867..8a82f2e 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v5.2.0_beta2 \ No newline at end of file +v5.2.0-beta2 \ No newline at end of file diff --git a/.github/workflows/docker_build_dev_image.yml b/.github/workflows/docker_build_dev_image.yml index 440c4f6..622431e 100644 --- a/.github/workflows/docker_build_dev_image.yml +++ b/.github/workflows/docker_build_dev_image.yml @@ -30,10 +30,16 @@ jobs: echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV echo "This is the Buildnumber/Timestamp: $DATI" echo "dati=$DATI" >> $GITHUB_ENV + # amd64 + sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./amd64/scripts/iobroker_startup.sh sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./amd64/Dockerfile > ./amd64/Dockerfile.tmp mv -f ./amd64/Dockerfile.tmp ./amd64/Dockerfile + # arm32v7 + sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./arm32v7/scripts/iobroker_startup.sh sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./arm32v7/Dockerfile > ./arm32v7/Dockerfile.tmp mv -f ./arm32v7/Dockerfile.tmp ./arm32v7/Dockerfile + # arm64v8 + sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./arm64v8/scripts/iobroker_startup.sh sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./arm64v8/Dockerfile > ./arm64v8/Dockerfile.tmp mv -f ./arm64v8/Dockerfile.tmp ./arm64v8/Dockerfile @@ -42,9 +48,6 @@ jobs: wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool chmod +x manifest-tool -# - name: Set up QEMU -# run: docker run --rm --privileged multiarch/qemu-user-static:register - - name: Set up QEMU uses: docker/setup-qemu-action@v1.2.0 @@ -52,15 +55,6 @@ jobs: id: buildx uses: docker/setup-buildx-action@v1.5.1 - # Just for troubleshooting - - name: Inspect builder - run: | - echo "Name: ${{ steps.buildx.outputs.name }}" - echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}" - echo "Status: ${{ steps.buildx.outputs.status }}" - echo "Flags: ${{ steps.buildx.outputs.flags }}" - echo "Platforms: ${{ steps.buildx.outputs.platforms }}" - - name: Login to DockerHub uses: docker/login-action@v1.10.0 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 74c3336..a9c1016 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,143 +1,146 @@ ## Changelog -### * v5.2.0 beta2 (2021-06-26) +### * v5.2.0-beta2 (2021-08-28) +* optimizing log output +* adding labels in OCI standard format +* adding packages update on first start * adding file for docker detection by ioBroker adapters * adding best practice for states db migation * removing couchdb option for states db (no longer supported) -* v5.2.0 beta1 (2021-05-04) +* v5.2.0-beta1 (2021-05-04) * added upgrade parameter to maintenance script * added expose for default admin ui port (#172) * added shortform for maintenance script -* v5.2.0 beta (2021-04-02) +* v5.2.0-beta (2021-04-02) * some renaming to optimize automated build * changes in versioning * delete travis for automated build ### v5.1.0 (2020-11-05) -* v5.0.2 beta (2020-07-28) +* v5.0.2-beta (2020-07-28) * added docker tag for majorversion latest * extend readme.md doku * added maintenance script * added container healthcheck * fixed configuration procedure and logging for objects and states db setup -* v5.0.1 beta (2020-07-01) +* v5.0.1-beta (2020-07-01) * fixing backup detection in startup script * fixing permission issue on iobroker restored * extended Logging * optimize multihost support ### v5.0.0 (2020-06-29) -* v4.2.4 beta (2020-06-23) +* v4.2.4-beta (2020-06-23) * added graceful shutdown * small fix for GID/UID handling * adding new ENV "IOB_MULTIHOST" for multihost support * small syntax fixes in iobroker_startup.sh -* v4.2.3 beta (2020-06-05) +* v4.2.3-beta (2020-06-05) * ~~updating js-controller to not stable version 3.1.5 to fix renaming issue~~ (is stable now) -* v4.2.2 beta (2020-06-03) +* v4.2.2-beta (2020-06-03) * ~~workaround for renaming issues on startup~~ (fixed in js-controller) -* v4.2.1 beta (2020-05-10) +* v4.2.1-beta (2020-05-10) * using node 12 instead of 10 * updated documentation in readme.md ### v4.2.0 (2020-04-14) -* v4.1.4 beta (2020-04-07) +* v4.1.4-beta (2020-04-07) * switching base image to buster * optimizing installation of packages defined by ENV "PACKAGES" -* v4.1.3 beta (2020-02-08) +* v4.1.3-beta (2020-02-08) * renamed ENV for adminport (new "IOB_ADMINPORT)") * added new ENVs for "iobroker setup custom" (replacing "REDIS") * enhancements in startup script logging -* v4.1.2 beta (2020-02-02) +* v4.1.2-beta (2020-02-02) * added feature for running user defined scripts on startup * small fix for permissions issues on some systems -* v4.1.1 beta (2020-01-17) +* v4.1.1-beta (2020-01-17) * updated openzwave to version 1.6.1007 ### v4.1.0 (2020-01-17) * improved readme.md -* v4.0.3 beta (2020-01-06) +* v4.0.3-beta (2020-01-06) * added support to restore backup on startup * small fixes according to "docker best practices" -* v4.0.2 beta (2019-12-10) +* v4.0.2-beta (2019-12-10) * ~~added env for activating redis~~ * enhancements in startup script and docker file -* v4.0.1 beta (2019-11-25) +* v4.0.1-beta (2019-11-25) * added env for iobroker admin port * added env for usb-devices (setting permissions) * updateing prerequisites for iobroker installation * some small code fixes ### v4.0.0 (2019-10-25) -* v3.1.4 beta (2019-10-23) +* v3.1.4-beta (2019-10-23) * added env for zwave support -* v3.1.3 beta (2019-10-17) +* v3.1.3-beta (2019-10-17) * enhanced logging of startup-script * multi arch support (amd64, aarch64, armv7hf) -* v3.1.2 beta (2019-09-03) +* v3.1.2-beta (2019-09-03) * using node 10 instead of node 8 -* v3.1.1 beta (2019-09-02) +* v3.1.1-beta (2019-09-02) * adding env for setting uid/ gid for iobroker-user ### v3.1.0 (2019-08-21) -* v3.0.3 beta (2019-08-21) +* v3.0.3-beta (2019-08-21) * switching base image from "debian:latest" to "debian:stretch" -* v3.0.2 beta (2019-06-13) +* v3.0.2-beta (2019-06-13) * using gosu instead of sudo * changing output of ioBroker logging -* v3.0.1 beta (2019-05-18) +* v3.0.1-beta (2019-05-18) * ~~switching back to iobroker-daemon for startup~~ ### v3.0.0 (2019-05-09) -* v2.0.6 beta (2019-04-14) +* v2.0.6-beta (2019-04-14) * added some additional logging * fixing some issues for language env * added permission fixing on first start -* v2.0.5 beta (2019-02-09) +* v2.0.5-beta (2019-02-09) * added ENV to docker file * added EXPOSE for admin * final testing -* v2.0.4 beta (2019-01-28) +* v2.0.4-beta (2019-01-28) * added support for env variables "avahi" and "packages" * moving avahi-daemon installation into avahi startup script * added script for installing optional packages * optimizing logging output -* v2.0.3 beta (2019-01-24) +* v2.0.3-beta (2019-01-24) * added support for running ioBroker under iobroker user * optimizing logging output * optimizing scripts -* v2.0.2 beta (2019-01-23) +* v2.0.2-beta (2019-01-23) * optimizing and rearranged docker file * changes for new ioBroker install script * added restoring for empty mounted /opt/iobroker folder * some more small fixes -* v2.0.1 beta (2019-01-07) +* v2.0.1-beta (2019-01-07) * some changes for supporting other docker-environments than synology ds ### v2.0.0 (2018-12-05) -* v1.2.2 beta (2018-12-05) +* v1.2.2-beta (2018-12-05) * using node8 instead of node6 * changes for new iobroker setup -* v1.2.1 beta (2018-09-12) +* v1.2.1-beta (2018-09-12) * added support for firetv-adapter ### v1.2.0 (2018-08-21) -* v1.1.3 beta (2018-08-21) +* v1.1.3-beta (2018-08-21) * ~~added ffmpeg-package for yahka to support webcams~~ -* v1.1.2 beta (2018-04-04) +* v1.1.2-beta (2018-04-04) * added ENV for timezone issue -* v1.1.1 beta (2018-03-29) +* v1.1.1-beta (2018-03-29) * added wget package * updated readme.md ### v1.1.0 (2017-12-10) -* v1.0.2 beta (2017-12-10) +* v1.0.2-beta (2017-12-10) * changed startup call to fix restart issue * fixed avahi startup issue * fixed hostname issue * added z-wave support * added logging to /opt/scripts/docker_iobroker_log.txt -* v1.0.1 beta (2017-08-25) +* v1.0.1-beta (2017-08-25) * fixed locales issue ### v1.0.0 (2017-08-22) diff --git a/amd64/scripts/iobroker_startup.sh b/amd64/scripts/iobroker_startup.sh index 9cbf0cf..2962c87 100644 --- a/amd64/scripts/iobroker_startup.sh +++ b/amd64/scripts/iobroker_startup.sh @@ -40,8 +40,11 @@ echo "----- -----" echo "----- System -----" echo -n "----- " && echo -n "$(printf "%-10s %-23s" arch: $(uname -m))" && echo " -----" echo "----- -----" +echo "----- Docker-Image -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" image: ${VERSION})" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" build: ${BUILD})" && echo " -----" +echo "----- -----" echo "----- Versions -----" -echo -n "----- " && echo -n "$(printf "%-10s %-23s" image: $VERSION)" && echo " -----" echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -v))" && echo " -----" echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----" echo "----- -----" @@ -74,15 +77,27 @@ echo ' ' # Adding ckeck file for easy docker detection by ioBroker echo "$VERSION" > /opt/scripts/.docker_config/.thisisdocker -# Installing additional packages and setting uid/gid +# Installing/ updating additional packages and setting uid/gid if [ "$packages" != "" ] || [ $(cat /etc/group | grep 'iobroker:' | cut -d':' -f3) != $setgid ] || [ $(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3) != $setuid ] || [ -f /opt/.firstrun ] then + if [ -f /opt/.firstrun ] + then + echo "Updating Linux packages on first run..." + bash /opt/scripts/setup_packages.sh -update + echo "Done." + echo ' ' + echo "Registering maintenance script as command..." + echo "alias maintenance=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc + echo "alias maint=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc + echo "Done." + echo ' ' + fi if [ "$packages" != "" ] then echo "Installing additional packages is set by ENV." echo "The following packages will be installed:" $packages"..." echo $packages > /opt/scripts/.packages - bash /opt/scripts/setup_packages.sh + bash /opt/scripts/setup_packages.sh -install echo "Done." echo ' ' fi @@ -95,14 +110,6 @@ then echo "Done." echo ' ' fi - if [ -f /opt/.firstrun ] - then - echo "Registering maintenance script as command." - echo "alias maintenance=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc - echo "alias maint=\'/opt/scripts/maintenance.sh\'" >> /root/.bashrc - echo "Done." - echo ' ' - fi else echo "Nothing to do here." echo ' ' diff --git a/amd64/scripts/setup_packages.sh b/amd64/scripts/setup_packages.sh index 449900f..175e212 100644 --- a/amd64/scripts/setup_packages.sh +++ b/amd64/scripts/setup_packages.sh @@ -1,11 +1,16 @@ #!/bin/bash -apt-get -qq update - -packages=$(cat /opt/scripts/.packages) -for i in $packages; do - sudo apt-get -qq -y install $i -done +if [ $1 == "-install" ] + then + apt-get -qq update + packages=$(cat /opt/scripts/.packages) + for i in $packages; do + sudo apt-get -qq -y install $i + done + elif [ $1 == "-update" ] + apt-get -qq update + apt-get -qq -y upgrade +fi rm -rf /var/lib/apt/lists/* rm -f /opt/scripts/.packages