From e1268aa27c9d7b1c383ef10ac8fad2cfce502c9c Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 22 Oct 2019 14:22:27 +0200 Subject: [PATCH 1/9] multiarch --- .VERSION | 2 +- .travis.yml | 105 +++++++++++ LICENSE.md | 2 +- README.md | 38 ++-- aarch64/Dockerfile | 85 +++++++++ aarch64/scripts/iobroker_startup.sh | 167 ++++++++++++++++++ {scripts => aarch64/scripts}/setup_avahi.sh | 0 .../scripts}/setup_packages.sh | 0 Dockerfile => amd64/Dockerfile | 11 +- amd64/scripts/iobroker_startup.sh | 167 ++++++++++++++++++ amd64/scripts/setup_avahi.sh | 35 ++++ amd64/scripts/setup_packages.sh | 8 + armv7hf/Dockerfile | 85 +++++++++ armv7hf/scripts/iobroker_startup.sh | 167 ++++++++++++++++++ armv7hf/scripts/setup_avahi.sh | 35 ++++ armv7hf/scripts/setup_packages.sh | 8 + manifest.yml | 19 ++ .../backup_iobroker_folder.sh | 0 .../maintenance-scripts}/iobroker_restart.sh | 0 .../maintenance-scripts}/iobroker_stop.sh | 0 scripts/iobroker_startup.sh | 103 ----------- 21 files changed, 916 insertions(+), 121 deletions(-) create mode 100644 .travis.yml create mode 100644 aarch64/Dockerfile create mode 100644 aarch64/scripts/iobroker_startup.sh rename {scripts => aarch64/scripts}/setup_avahi.sh (100%) rename {scripts => aarch64/scripts}/setup_packages.sh (100%) rename Dockerfile => amd64/Dockerfile (94%) create mode 100644 amd64/scripts/iobroker_startup.sh create mode 100644 amd64/scripts/setup_avahi.sh create mode 100644 amd64/scripts/setup_packages.sh create mode 100644 armv7hf/Dockerfile create mode 100644 armv7hf/scripts/iobroker_startup.sh create mode 100644 armv7hf/scripts/setup_avahi.sh create mode 100644 armv7hf/scripts/setup_packages.sh create mode 100644 manifest.yml rename {maintenance_scripts => opt/maintenance-scripts}/backup_iobroker_folder.sh (100%) rename {maintenance_scripts => opt/maintenance-scripts}/iobroker_restart.sh (100%) rename {maintenance_scripts => opt/maintenance-scripts}/iobroker_stop.sh (100%) delete mode 100644 scripts/iobroker_startup.sh diff --git a/.VERSION b/.VERSION index 55491a8..7bf73df 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v3.1.2beta +v3.1.3beta diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..aef3987 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,105 @@ +sudo: required + +branches: + only: + - master + - beta + +services: + - docker + +language: bash + +env: + global: + - secure: "LnAvKBxbcqOz650+gb2BTLvhHR1t9PTCQv274IWIGLHqHB9u6mgM0wRpr8MR7mzxpi21QjFelkc1XIkRKR4w07+1OR259+lNYAIGjITKA7iIr1/MVgt0MGlclA6AXQGMV2398TLvkmd/3egvbjBYm7wwmcESnI43w050qhaygQR2PY7bwA/1K4O7LI3FVFPRu2Q78QK/PfLAy2923k+eTtwFstz1q/CmySKpAWNOvUthX2WcZbQOXRgr7+OZrSVwcqReu0ZUfuBp79nMZcXAXxPBu7RelP3GaFMsyxMGJlrLIlv97pQLOaoJ2T9/ZmvDqEtFmi6vzuukDGsWmZx13ZUiEAn+XFQUtpACf77h61b6jC2lzqXQlSJG7Uy2W2f0BPMBSQelVxoiONbzyjtptcjTX+xb0jnyTjQgOo2IZa8f8D55D+XsRJfc25u77323iH2x8blESslW3L52XZDXno0nwoa9LCj5bjDVlQ2jMpzedj88yjk9ss6HUwL/xDThmV74f/tL9R7n7M9WsT4RBkBIOOce/yRKF0rhGZDXY+uC8dg0mTYWeSXOJPmqIi59lZyKYR5WBupdts4/Q3b+mI7BAX8HTxjHw450G0iX1Dh5MSf3kgKoPbu03CC7l+XPgRVu9j4brUQ6uN9DVCjomlDzJzMN6EFR+meSIwhUR8Y=" + - secure: "eJui3AAugMETkg+E5CAN3F7707/WG9Ueq7rTE6QBuSFuLprhbTwZJGRCuf6iYuwQeHfUyP3JJDsUI1aasnkdLMr2sgKpNhmJ93J/8pCzlNDWbzskPAsIZ3vvXW0Dvcg9ALN7RBeG9fyOoJW2RmhQYE4oqIZQDXX/qBzDZbTzclB8O74ENu2M7hiQtKieYN/hrbmBVgLftScvbClBIwR+yCSMuan9ivyoiZnRq9RxoWpiyi+U+45A4jTO7ZWvSYpF4Rj6QlJyx4bfEhscvOwP5Vg834SKgBFU82HjFofKcH0jMeoH0ohFmpgEhrtFF3BF3cMPrz3dGJTt3Jwf3DUuLmBeN/im4omqVlysTq2AaTdrIDMnBP0sQUekKcXeqOwMZxFx4nm5cl86VAfa/DeqjuXabv2LEwidHxHRziuzwpzsRMCF1Q5EU56jyFCaKMXwzlTCrRvYNRhk+y2rdWatvOnnmsin7OmgDBY3PcFLDR3gGb4hqLt1ZE5+LaPofXWx3AF4k/Ovtaw5gaVzA4xoMs4w0jBIUl8GhutqVpYYDkjETIy47Nxf2QBBLvnSZR0eNBzA3Qd3j6RswFsEjDiB3UcsznlNmM+CGj1OzqkiIX7ggW+C05KMpyGjhugk90TjMh7HH/MmZD0FZlYvyJHb3EmAe4jgyZ3B6MU86BpjG0c=" + - VERSION="$(cat .VERSION)" + +before_install: + - wget https://github.com/estesp/manifest-tool/releases/download/v0.7.0/manifest-tool-linux-amd64 -O manifest-tool + - chmod +x manifest-tool + - docker run --rm --privileged multiarch/qemu-user-static:register + - echo "$HUB_PASS" | docker login -u "$HUB_USER" --password-stdin + +jobs: + include: + - stage: Build images + env: + - ARCH=amd64 + - JOB_NAME="Build images" + script: + - sed -i "s/\$VERSION/${VERSION}/g" $ARCH/scripts/iobroker_startup.sh + - docker build -t "buanet/iobroker-testing:$VERSION-$ARCH" ./amd64 + + - stage: Build images + env: + - ARCH=aarch64 + - JOB_NAME="Build images" + script: + - docker run --rm --privileged multiarch/qemu-user-static:register --reset + - sed -i "s/\$VERSION/${VERSION}/g" $ARCH/scripts/iobroker_startup.sh + - docker build -t "buanet/iobroker-testing:$VERSION-$ARCH" ./aarch64 + + - stage: Build images + env: + - ARCH=armv7hf + - JOB_NAME="Build images" + script: + - docker run --rm --privileged multiarch/qemu-user-static:register --reset + - sed -i "s/\$VERSION/${VERSION}/g" $ARCH/scripts/iobroker_startup.sh + - docker build -t "buanet/iobroker-testing:$VERSION-$ARCH" ./armv7hf + + - stage: Manifest + env: + - JOB_NAME="Manifest" + script: + - echo Placeholder + +after_success: +# tag and push built images + - > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Build images" ] ; then + docker push buanet/iobroker-testing:$VERSION-$ARCH + fi + + if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Build images" ] ; then + docker push buanet/iobroker-testing:$VERSION-$ARCH + fi + +# update repository manifest for multiarch and push to hub + - > + if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then + cat manifest.yml | sed "s/\$VERSION/${VERSION}/g" > manifest.yaml + + #manifest for image: buanet/iobroker-testing:version + cat manifest.yaml | sed "s/\$DOCKERTAG/${VERSION}/g" > manifestversion.yaml + + #manifest for image: buanet/iobroker-testing:latest + cat manifest.yaml | sed "s/\$DOCKERTAG/latest/g" > manifestlatest.yaml + + #push to hub + mv manifestversion.yaml iobroker-testing.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + + mv manifestlatest.yaml iobroker-testing.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + fi + + if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then + + cat manifest.yml | sed "s/\$VERSION/${VERSION}/g" > manifest.yaml + + #manifest for image: buanet/iobroker-testing:version + cat manifest.yaml | sed "s/\$DOCKERTAG/${VERSION}/g" > manifestversion.yaml + + #manifest for image: buanet/iobroker-testing:beta + cat manifest.yaml | sed "s/\$DOCKERTAG/beta/g" > manifestbeta.yaml + + #push to hub + mv manifestversion.yaml iobroker-testing.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + + mv manifestbeta.yaml iobroker-testing.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + fi diff --git a/LICENSE.md b/LICENSE.md index 7d7efd3..afe63aa 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017 [André Germann] +Copyright (c) 2017 Andre Germann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 073664d..a01d7e1 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,33 @@ -# docker-iobroker -Docker image for ioBroker (http://iobroker.net) based on debian:stretch (http://hub.docker.com/_/debian/) +# ioBroker for Docker +Source: https://github.com/buanet/docker-iobroker -This project creates a Docker image for running ioBroker in a Docker container. It is made for and tested on a Synology Disk Station 1515+ with DSM 6 and Docker-package installed. But it should also work on other systems with Docker installed! +IoBroker for Docker is an Dockerimage for ioBroker (http://iobroker.net) smarthome software. + +It is originally made for, and tested on a Synology Disk Station 1515+ with DSM 6 and Docker-package installed. But it should also work on other systems with Docker installed! + +Version 4 now supports running the Image in Docker on the following architectures: amd64, armv7hf, aarch64. +Feel free to ask for more architectures by opening an github-issue. ## Important -Switching an existing installation from docker-iobroker-image v1 to v2 or greater means switching iobroker itself from node6 to node8! This requires additional steps inside ioBroker! After upgrading iobroker-container you have to call "reinstall.sh" for recompiling your installation for the use with node8. For Details see official ioBroker-documentation (http://www.iobroker.net/docu/?page_id=8323&lang=de). Make backup first!!! +The new v4 comes again with a new major node-version (node10)! +If you are updating an existing Installation you have to perform some additional steps inside ioBroker! +After upgrading your iobroker-container you have to call "reinstall.sh" for recompiling your installation for the use with node10! +For Details see official ioBroker-documentation (http://www.iobroker.net/docu/?page_id=8323&lang=de). Make backup first! -## Installation & Usage +## Installation & usage -A detailed tutorial (german, based on new v3.0.0) can be found here: [https://buanet.de](https://buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/). Please notice that the old tutorial does no longer work! +A detailed tutorial (german, based on v3.0.0) can be found here: [https://buanet.de](https://buanet.de/2019/05/iobroker-unter-docker-auf-der-synology-diskstation-v3/). Please notice that the old tutorial is outdated and does no longer work! For discussion and support please visit [ioBroker-forum-thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) or use the comments section at the linked tutorial. Please do not contact me directly for any support-reasons. Every support-question should be answered in a public place. Thank you. -## Special Settings +## Special settings and features -In v3.0.0 I added some new features. The following will give some short information about that. +The following will give a short overview. -### Environment Variables +### Environment variables + +Since v3 is possible to set some environment variables to configure a new container. |env|value|description| |---|---|---| @@ -32,7 +42,7 @@ In v3.0.0 I added some new features. The following will give some short informat ### Mounting Folder/ Volume -It is now possible to mount an empty folder to /opt/iobroker during first startup of the container. The Startupscript will check this folder and restore content if empty. +It is now possible to mount an empty folder to /opt/iobroker during first startup of the container. The Startupscript will check this folder and restore content if it is empty. It is absolutely recommended to use a mounted folder or persistent volume for /opt/iobroker folder! @@ -40,11 +50,15 @@ This also works with mounting a folder containing an existing ioBroker-installat ### Permission Fixer -I added some code for fixing permissions for new iobroker-user. Permission-fixing is called on first start of the container. This might take a few minutes. Please take a look at the logs and be patient! +After some issues with permissions related to the use of a dedicated user for ioBroker, I added some code for fixing permissions on container startup. This might take a few minutes on first startup. Please take a look at the logs and be patient! ## Changelog -### v3.1.2beta (2019-09-03) +### v4.0.0 (2019-10-22) +* v3.1.3beta (2019-10-17) + * enhanced logging of startup-script + * multiarch support (amd64, aarch64, armv7hf) +* v3.1.2beta (2019-09-03) * using node 10 instead of node 8 * v3.1.1beta (2019-09-02) * adding env for setting uid/ gid for iobroker-user diff --git a/aarch64/Dockerfile b/aarch64/Dockerfile new file mode 100644 index 0000000..85c5655 --- /dev/null +++ b/aarch64/Dockerfile @@ -0,0 +1,85 @@ +FROM balenalib/aarch64-debian:stretch + +MAINTAINER Andre Germann + +ENV DEBIAN_FRONTEND noninteractive + +# Debugging for multiarch +RUN uname -m + +# Install prerequisites +RUN apt-get update && apt-get upgrade -y && apt-get install -y \ + acl \ + apt-utils \ + build-essential \ + curl \ + git \ + gnupg2 \ + libcap2-bin \ + libpam0g-dev \ + libudev-dev \ + locales \ + procps \ + python \ + gosu \ + unzip \ + wget \ + && rm -rf /var/lib/apt/lists/* + +# Install node10 +RUN curl -sL https://deb.nodesource.com/setup_10.x | bash \ + && apt-get update && apt-get install -y \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# Generating locales +RUN sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen + +# Create scripts directory and copy scripts +RUN mkdir -p /opt/scripts/ \ + && chmod 777 /opt/scripts/ +WORKDIR /opt/scripts/ +COPY scripts/iobroker_startup.sh iobroker_startup.sh +COPY scripts/setup_avahi.sh setup_avahi.sh +COPY scripts/setup_packages.sh setup_packages.sh +RUN chmod +x iobroker_startup.sh \ + && chmod +x setup_avahi.sh \ + && chmod +x setup_packages.sh + +# Install ioBroker +WORKDIR / +RUN apt-get update \ + && curl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/stable-installer/installer.sh | bash - \ + && echo $(hostname) > /opt/iobroker/.install_host \ + && echo $(hostname) > /opt/.firstrun \ + && rm -rf /var/lib/apt/lists/* + +# Install node-gyp +WORKDIR /opt/iobroker/ +RUN npm config set unsafe-perm true # To fix "Error: could not get uid/gid" +RUN npm install -g node-gyp + +# Backup initial ioBroker-folder +RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker + +# Setting up iobroker-user +RUN chsh -s /bin/bash iobroker + +# Setting up ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + TZ="Europe/Berlin" \ + PACKAGES="nano" \ + AVAHI="false" \ + SETUID=1000 \ + SETGID=1000 + +# Setting up EXPOSE for Admin +EXPOSE 8081/tcp + +# Run startup-script +ENTRYPOINT ["/opt/scripts/iobroker_startup.sh"] diff --git a/aarch64/scripts/iobroker_startup.sh b/aarch64/scripts/iobroker_startup.sh new file mode 100644 index 0000000..0c49ca8 --- /dev/null +++ b/aarch64/scripts/iobroker_startup.sh @@ -0,0 +1,167 @@ +#!/bin/bash + +# Reading ENV +packages=$PACKAGES +avahi=$AVAHI +uid=$SETUID +gid=$SETGID + +# Getting date and time for logging +dati=`date '+%Y-%m-%d %H:%M:%S'` + +# Header +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo -n "$(printf -- '-%.0s' {1..15})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..15})" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Welcome to your ioBroker-container! -----" +echo "----- Startupscript is now running. -----" +echo "----- Please be patient! -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Debugging information -----" +echo "----- -----" +echo "----- System -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" arch: $(uname -m))" && 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 "----- -----" +echo "----- ENV -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $PACKAGES)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +# Checking and installing additional packages +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 1 of 5: Installing additional packages -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +if [ "$packages" != "" ] +then + echo "The following packages will be installed:" $packages"..." + echo $packages > /opt/scripts/.packages + sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1 + echo "Done." +else + echo "There are no additional packages defined." +fi +echo ' ' + +# Change directory for next steps +cd /opt/iobroker + +# Detecting ioBroker-Installation +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 2 of 5: Detecting ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +if [ `ls -1a|wc -l` -lt 3 ] +then + echo "There is no data detected in /opt/iobroker. Restoring..." + tar -xf /opt/initial_iobroker.tar -C / + echo "Done." +else + if [ -f /opt/iobroker/iobroker ] + then + echo "Installation of ioBroker detected in /opt/iobroker." + else + echo "There is data detected in /opt/iobroker, but it looks like it is no instance of iobroker!" + echo "Please check/ recreate mounted folder/ volume and restart ioBroker container." + exit 1 + fi +fi +echo ' ' + +# Checking ioBroker-Installation +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 3 of 5: Checking ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +# Checking for first run and set uid/gid +if [ -f /opt/.firstrun ] +then + echo "This is the first run of a new container. Time for some preparation." + echo ' ' + echo "Changing UID to "$uid" and GID to "$gid"..." + usermod -u $uid iobroker + groupmod -g $gid iobroker + rm -f /opt/.firstrun + echo "Done." +else + echo "This is NOT the first run of the container. Some Steps will be skipped." +fi +echo ' ' + +# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts" +echo "(Re)Setting folder permissions (This might take a while! Please be patient!)..." + chown -R $uid:$gid /opt/iobroker + chown -R $uid:$gid /opt/scripts +echo "Done." +echo ' ' + +# Backing up original iobroker-file and changing sudo to gosu +echo "Fixing \"sudo-bug\" by replacing sudo with gosu..." + cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak + chmod 755 /opt/iobroker/iobroker + sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker +echo "Done." +echo ' ' + +# Checking for first run of a new installation and renaming ioBroker +if [ -f /opt/iobroker/.install_host ] +then + echo "Looks like this is a new and empty installation of ioBroker." + echo "Hostname needs to be updated to " $(hostname)"..." + sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host) + rm -f /opt/iobroker/.install_host + echo 'Done.' + echo ' ' +fi + +# Setting up prerequisites for some ioBroker-adapters +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 4 of 5: Applying special settings -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +echo "Some adapters have special requirements which can be activated by the use of environment variables." +echo "For more information take a look at readme.md" +echo ' ' + +# Checking for and setting up avahi-daemon +if [ "$avahi" = "true" ] +then + echo "Avahi-daemon is activated by ENV." + echo "Initializing Avahi-Daemon..." + chmod 764 /opt/scripts/setup_avahi.sh + sh /opt/scripts/setup_avahi.sh + echo 'Done.' + echo ' ' +fi + +sleep 5 + +# Starting ioBroker +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 5 of 5: ioBroker startup -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "Starting ioBroker..." +echo ' ' +#gosu iobroker node --trace-warnings node_modules/iobroker.js-controller/controller.js > /opt/iobroker/iobroker.log 2>&1 & +gosu iobroker node node_modules/iobroker.js-controller/controller.js + +# Preventing container restart by keeping a process alive even if iobroker will be stopped +tail -f /dev/null diff --git a/scripts/setup_avahi.sh b/aarch64/scripts/setup_avahi.sh similarity index 100% rename from scripts/setup_avahi.sh rename to aarch64/scripts/setup_avahi.sh diff --git a/scripts/setup_packages.sh b/aarch64/scripts/setup_packages.sh similarity index 100% rename from scripts/setup_packages.sh rename to aarch64/scripts/setup_packages.sh diff --git a/Dockerfile b/amd64/Dockerfile similarity index 94% rename from Dockerfile rename to amd64/Dockerfile index 4ae4fe7..3c6654a 100644 --- a/Dockerfile +++ b/amd64/Dockerfile @@ -4,6 +4,9 @@ MAINTAINER Andre Germann ENV DEBIAN_FRONTEND noninteractive +# Debugging for multiarch +RUN uname -m + # Install prerequisites RUN apt-get update && apt-get upgrade -y && apt-get install -y \ acl \ @@ -23,7 +26,7 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \ wget \ && rm -rf /var/lib/apt/lists/* -# Install node8 +# Install node10 RUN curl -sL https://deb.nodesource.com/setup_10.x | bash \ && apt-get update && apt-get install -y \ nodejs \ @@ -70,9 +73,9 @@ ENV DEBIAN_FRONTEND="teletype" \ LC_ALL="de_DE.UTF-8" \ TZ="Europe/Berlin" \ PACKAGES="nano" \ - AVAHI="false" \ - SETUID=1000 \ - SETGID=1000 + AVAHI="false" \ + SETUID=1000 \ + SETGID=1000 # Setting up EXPOSE for Admin EXPOSE 8081/tcp diff --git a/amd64/scripts/iobroker_startup.sh b/amd64/scripts/iobroker_startup.sh new file mode 100644 index 0000000..0c49ca8 --- /dev/null +++ b/amd64/scripts/iobroker_startup.sh @@ -0,0 +1,167 @@ +#!/bin/bash + +# Reading ENV +packages=$PACKAGES +avahi=$AVAHI +uid=$SETUID +gid=$SETGID + +# Getting date and time for logging +dati=`date '+%Y-%m-%d %H:%M:%S'` + +# Header +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo -n "$(printf -- '-%.0s' {1..15})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..15})" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Welcome to your ioBroker-container! -----" +echo "----- Startupscript is now running. -----" +echo "----- Please be patient! -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Debugging information -----" +echo "----- -----" +echo "----- System -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" arch: $(uname -m))" && 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 "----- -----" +echo "----- ENV -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $PACKAGES)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +# Checking and installing additional packages +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 1 of 5: Installing additional packages -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +if [ "$packages" != "" ] +then + echo "The following packages will be installed:" $packages"..." + echo $packages > /opt/scripts/.packages + sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1 + echo "Done." +else + echo "There are no additional packages defined." +fi +echo ' ' + +# Change directory for next steps +cd /opt/iobroker + +# Detecting ioBroker-Installation +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 2 of 5: Detecting ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +if [ `ls -1a|wc -l` -lt 3 ] +then + echo "There is no data detected in /opt/iobroker. Restoring..." + tar -xf /opt/initial_iobroker.tar -C / + echo "Done." +else + if [ -f /opt/iobroker/iobroker ] + then + echo "Installation of ioBroker detected in /opt/iobroker." + else + echo "There is data detected in /opt/iobroker, but it looks like it is no instance of iobroker!" + echo "Please check/ recreate mounted folder/ volume and restart ioBroker container." + exit 1 + fi +fi +echo ' ' + +# Checking ioBroker-Installation +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 3 of 5: Checking ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +# Checking for first run and set uid/gid +if [ -f /opt/.firstrun ] +then + echo "This is the first run of a new container. Time for some preparation." + echo ' ' + echo "Changing UID to "$uid" and GID to "$gid"..." + usermod -u $uid iobroker + groupmod -g $gid iobroker + rm -f /opt/.firstrun + echo "Done." +else + echo "This is NOT the first run of the container. Some Steps will be skipped." +fi +echo ' ' + +# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts" +echo "(Re)Setting folder permissions (This might take a while! Please be patient!)..." + chown -R $uid:$gid /opt/iobroker + chown -R $uid:$gid /opt/scripts +echo "Done." +echo ' ' + +# Backing up original iobroker-file and changing sudo to gosu +echo "Fixing \"sudo-bug\" by replacing sudo with gosu..." + cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak + chmod 755 /opt/iobroker/iobroker + sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker +echo "Done." +echo ' ' + +# Checking for first run of a new installation and renaming ioBroker +if [ -f /opt/iobroker/.install_host ] +then + echo "Looks like this is a new and empty installation of ioBroker." + echo "Hostname needs to be updated to " $(hostname)"..." + sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host) + rm -f /opt/iobroker/.install_host + echo 'Done.' + echo ' ' +fi + +# Setting up prerequisites for some ioBroker-adapters +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 4 of 5: Applying special settings -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +echo "Some adapters have special requirements which can be activated by the use of environment variables." +echo "For more information take a look at readme.md" +echo ' ' + +# Checking for and setting up avahi-daemon +if [ "$avahi" = "true" ] +then + echo "Avahi-daemon is activated by ENV." + echo "Initializing Avahi-Daemon..." + chmod 764 /opt/scripts/setup_avahi.sh + sh /opt/scripts/setup_avahi.sh + echo 'Done.' + echo ' ' +fi + +sleep 5 + +# Starting ioBroker +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 5 of 5: ioBroker startup -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "Starting ioBroker..." +echo ' ' +#gosu iobroker node --trace-warnings node_modules/iobroker.js-controller/controller.js > /opt/iobroker/iobroker.log 2>&1 & +gosu iobroker node node_modules/iobroker.js-controller/controller.js + +# Preventing container restart by keeping a process alive even if iobroker will be stopped +tail -f /dev/null diff --git a/amd64/scripts/setup_avahi.sh b/amd64/scripts/setup_avahi.sh new file mode 100644 index 0000000..469331b --- /dev/null +++ b/amd64/scripts/setup_avahi.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +echo 'Checking avahi-daemon installation state...' + +if [ -f /usr/sbin/avahi-daemon ] +then + echo 'Avahi already installed...' +else + echo 'Installing avahi-daemon...' + apt-get update > /opt/scripts/avahi_startup.log 2>&1 + apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 + rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1 + echo 'Configuring avahi-daemon...' + sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf + echo 'Configuring dbus...' + mkdir /var/run/dbus/ +fi + +if [ -f /var/run/dbus/pid ]; +then + rm -f /var/run/dbus/pid +fi + +if [ -f /var/run/avahi-daemon//pid ]; +then + rm -f /var/run/avahi-daemon//pid +fi + +echo 'Starting dbus...' +dbus-daemon --system + +echo 'Starting avahi-daemon...' +/etc/init.d/avahi-daemon start + +exit 0 diff --git a/amd64/scripts/setup_packages.sh b/amd64/scripts/setup_packages.sh new file mode 100644 index 0000000..8dc6848 --- /dev/null +++ b/amd64/scripts/setup_packages.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +apt-get update +apt-get install -y $(cat /opt/scripts/.packages) +rm -rf /var/lib/apt/lists/* +rm -f /opt/scripts/.packages + +exit 0 diff --git a/armv7hf/Dockerfile b/armv7hf/Dockerfile new file mode 100644 index 0000000..04cad35 --- /dev/null +++ b/armv7hf/Dockerfile @@ -0,0 +1,85 @@ +FROM balenalib/armv7hf-debian:stretch + +MAINTAINER Andre Germann + +ENV DEBIAN_FRONTEND noninteractive + +# Debugging for multiarch +RUN uname -m + +# Install prerequisites +RUN apt-get update && apt-get upgrade -y && apt-get install -y \ + acl \ + apt-utils \ + build-essential \ + curl \ + git \ + gnupg2 \ + libcap2-bin \ + libpam0g-dev \ + libudev-dev \ + locales \ + procps \ + python \ + gosu \ + unzip \ + wget \ + && rm -rf /var/lib/apt/lists/* + +# Install node8 +RUN curl -sL https://deb.nodesource.com/setup_10.x | bash \ + && apt-get update && apt-get install -y \ + nodejs \ + && rm -rf /var/lib/apt/lists/* + +# Generating locales +RUN sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen + +# Create scripts directory and copy scripts +RUN mkdir -p /opt/scripts/ \ + && chmod 777 /opt/scripts/ +WORKDIR /opt/scripts/ +COPY scripts/iobroker_startup.sh iobroker_startup.sh +COPY scripts/setup_avahi.sh setup_avahi.sh +COPY scripts/setup_packages.sh setup_packages.sh +RUN chmod +x iobroker_startup.sh \ + && chmod +x setup_avahi.sh \ + && chmod +x setup_packages.sh + +# Install ioBroker +WORKDIR / +RUN apt-get update \ + && curl -sL https://raw.githubusercontent.com/ioBroker/ioBroker/stable-installer/installer.sh | bash - \ + && echo $(hostname) > /opt/iobroker/.install_host \ + && echo $(hostname) > /opt/.firstrun \ + && rm -rf /var/lib/apt/lists/* + +# Install node-gyp +WORKDIR /opt/iobroker/ +RUN npm config set unsafe-perm true # To fix "Error: could not get uid/gid" +RUN npm install -g node-gyp + +# Backup initial ioBroker-folder +RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker + +# Setting up iobroker-user +RUN chsh -s /bin/bash iobroker + +# Setting up ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + TZ="Europe/Berlin" \ + PACKAGES="nano" \ + AVAHI="false" \ + SETUID=1000 \ + SETGID=1000 + +# Setting up EXPOSE for Admin +EXPOSE 8081/tcp + +# Run startup-script +ENTRYPOINT ["/opt/scripts/iobroker_startup.sh"] diff --git a/armv7hf/scripts/iobroker_startup.sh b/armv7hf/scripts/iobroker_startup.sh new file mode 100644 index 0000000..0c49ca8 --- /dev/null +++ b/armv7hf/scripts/iobroker_startup.sh @@ -0,0 +1,167 @@ +#!/bin/bash + +# Reading ENV +packages=$PACKAGES +avahi=$AVAHI +uid=$SETUID +gid=$SETGID + +# Getting date and time for logging +dati=`date '+%Y-%m-%d %H:%M:%S'` + +# Header +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo -n "$(printf -- '-%.0s' {1..15})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..15})" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Welcome to your ioBroker-container! -----" +echo "----- Startupscript is now running. -----" +echo "----- Please be patient! -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Debugging information -----" +echo "----- -----" +echo "----- System -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" arch: $(uname -m))" && 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 "----- -----" +echo "----- ENV -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $PACKAGES)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +# Checking and installing additional packages +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 1 of 5: Installing additional packages -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +if [ "$packages" != "" ] +then + echo "The following packages will be installed:" $packages"..." + echo $packages > /opt/scripts/.packages + sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1 + echo "Done." +else + echo "There are no additional packages defined." +fi +echo ' ' + +# Change directory for next steps +cd /opt/iobroker + +# Detecting ioBroker-Installation +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 2 of 5: Detecting ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +if [ `ls -1a|wc -l` -lt 3 ] +then + echo "There is no data detected in /opt/iobroker. Restoring..." + tar -xf /opt/initial_iobroker.tar -C / + echo "Done." +else + if [ -f /opt/iobroker/iobroker ] + then + echo "Installation of ioBroker detected in /opt/iobroker." + else + echo "There is data detected in /opt/iobroker, but it looks like it is no instance of iobroker!" + echo "Please check/ recreate mounted folder/ volume and restart ioBroker container." + exit 1 + fi +fi +echo ' ' + +# Checking ioBroker-Installation +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 3 of 5: Checking ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +# Checking for first run and set uid/gid +if [ -f /opt/.firstrun ] +then + echo "This is the first run of a new container. Time for some preparation." + echo ' ' + echo "Changing UID to "$uid" and GID to "$gid"..." + usermod -u $uid iobroker + groupmod -g $gid iobroker + rm -f /opt/.firstrun + echo "Done." +else + echo "This is NOT the first run of the container. Some Steps will be skipped." +fi +echo ' ' + +# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts" +echo "(Re)Setting folder permissions (This might take a while! Please be patient!)..." + chown -R $uid:$gid /opt/iobroker + chown -R $uid:$gid /opt/scripts +echo "Done." +echo ' ' + +# Backing up original iobroker-file and changing sudo to gosu +echo "Fixing \"sudo-bug\" by replacing sudo with gosu..." + cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak + chmod 755 /opt/iobroker/iobroker + sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker +echo "Done." +echo ' ' + +# Checking for first run of a new installation and renaming ioBroker +if [ -f /opt/iobroker/.install_host ] +then + echo "Looks like this is a new and empty installation of ioBroker." + echo "Hostname needs to be updated to " $(hostname)"..." + sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host) + rm -f /opt/iobroker/.install_host + echo 'Done.' + echo ' ' +fi + +# Setting up prerequisites for some ioBroker-adapters +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 4 of 5: Applying special settings -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' + +echo "Some adapters have special requirements which can be activated by the use of environment variables." +echo "For more information take a look at readme.md" +echo ' ' + +# Checking for and setting up avahi-daemon +if [ "$avahi" = "true" ] +then + echo "Avahi-daemon is activated by ENV." + echo "Initializing Avahi-Daemon..." + chmod 764 /opt/scripts/setup_avahi.sh + sh /opt/scripts/setup_avahi.sh + echo 'Done.' + echo ' ' +fi + +sleep 5 + +# Starting ioBroker +echo "$(printf -- '-%.0s' {1..60})" +echo "----- Step 5 of 5: ioBroker startup -----" +echo "$(printf -- '-%.0s' {1..60})" +echo ' ' +echo "Starting ioBroker..." +echo ' ' +#gosu iobroker node --trace-warnings node_modules/iobroker.js-controller/controller.js > /opt/iobroker/iobroker.log 2>&1 & +gosu iobroker node node_modules/iobroker.js-controller/controller.js + +# Preventing container restart by keeping a process alive even if iobroker will be stopped +tail -f /dev/null diff --git a/armv7hf/scripts/setup_avahi.sh b/armv7hf/scripts/setup_avahi.sh new file mode 100644 index 0000000..469331b --- /dev/null +++ b/armv7hf/scripts/setup_avahi.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +echo 'Checking avahi-daemon installation state...' + +if [ -f /usr/sbin/avahi-daemon ] +then + echo 'Avahi already installed...' +else + echo 'Installing avahi-daemon...' + apt-get update > /opt/scripts/avahi_startup.log 2>&1 + apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 + rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1 + echo 'Configuring avahi-daemon...' + sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf + echo 'Configuring dbus...' + mkdir /var/run/dbus/ +fi + +if [ -f /var/run/dbus/pid ]; +then + rm -f /var/run/dbus/pid +fi + +if [ -f /var/run/avahi-daemon//pid ]; +then + rm -f /var/run/avahi-daemon//pid +fi + +echo 'Starting dbus...' +dbus-daemon --system + +echo 'Starting avahi-daemon...' +/etc/init.d/avahi-daemon start + +exit 0 diff --git a/armv7hf/scripts/setup_packages.sh b/armv7hf/scripts/setup_packages.sh new file mode 100644 index 0000000..8dc6848 --- /dev/null +++ b/armv7hf/scripts/setup_packages.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +apt-get update +apt-get install -y $(cat /opt/scripts/.packages) +rm -rf /var/lib/apt/lists/* +rm -f /opt/scripts/.packages + +exit 0 diff --git a/manifest.yml b/manifest.yml new file mode 100644 index 0000000..cc75783 --- /dev/null +++ b/manifest.yml @@ -0,0 +1,19 @@ +image: buanet/iobroker-testing:$DOCKERTAG +manifests: + - + image: buanet/iobroker-testing:$VERSION-amd64 + platform: + architecture: amd64 + os: linux + - + image: buanet/iobroker-testing:$VERSION-aarch64 + platform: + architecture: arm64 + variant: v8 + os: linux + - + image: buanet/iobroker-testing:$VERSION-armv7hf + platform: + architecture: arm + variant: v7 + os: linux \ No newline at end of file diff --git a/maintenance_scripts/backup_iobroker_folder.sh b/opt/maintenance-scripts/backup_iobroker_folder.sh similarity index 100% rename from maintenance_scripts/backup_iobroker_folder.sh rename to opt/maintenance-scripts/backup_iobroker_folder.sh diff --git a/maintenance_scripts/iobroker_restart.sh b/opt/maintenance-scripts/iobroker_restart.sh similarity index 100% rename from maintenance_scripts/iobroker_restart.sh rename to opt/maintenance-scripts/iobroker_restart.sh diff --git a/maintenance_scripts/iobroker_stop.sh b/opt/maintenance-scripts/iobroker_stop.sh similarity index 100% rename from maintenance_scripts/iobroker_stop.sh rename to opt/maintenance-scripts/iobroker_stop.sh diff --git a/scripts/iobroker_startup.sh b/scripts/iobroker_startup.sh deleted file mode 100644 index 3c46dfb..0000000 --- a/scripts/iobroker_startup.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/bash - -# Reading env-variables -packages=$PACKAGES -avahi=$AVAHI -uid=$SETUID -gid=$SETGID - -# Getting date and time for logging -dati=`date '+%Y-%m-%d %H:%M:%S'` - -# Information -echo '' -echo '----------------------------------------' -echo '----- Image-Version: 3.1.2beta -----' -echo '----- '$dati' -----' -echo '----------------------------------------' -echo '' -echo 'Startupscript running...' - -# Checking and installing additional packages -if [ "$packages" != "" ] -then - echo '' - echo 'Installing additional packages...' - echo 'The following packages will be installed:' $packages - echo $packages > /opt/scripts/.packages - sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1 - echo 'Done.' -fi - -cd /opt/iobroker - -# Checking and restoring ioBroker to empty mounted folder -if [ `ls -1a|wc -l` -lt 3 ] -then - echo '' - echo 'Directory /opt/iobroker is empty!' - echo 'Restoring data from image...' - tar -xf /opt/initial_iobroker.tar -C / - echo 'Done.' -fi - -# Checking for first run and set uid/gid and permissions -if [ -f /opt/.firstrun ] -then - echo '' - echo 'Changing UID/GID and permissions upon first run...' - echo 'Setting UID to '$uid' and GID to '$gid'...' - usermod -u $uid iobroker - groupmod -g $gid iobroker - echo 'Done.' - echo 'Setting folder permissions (This might take a while! Please be patient!)...' - chown -R $uid:$gid /opt/iobroker - chown -R $uid:$gid /opt/scripts - rm -f /opt/.firstrun - echo 'Done.' -fi - -# Backing up original iobroker-file and changing sudo to gosu -cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak -chmod 755 /opt/iobroker/iobroker -sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker - -# Checking for first run of a new installation and renaming ioBroker -if [ -f /opt/iobroker/.install_host ] -then - echo '' - echo 'This is the first run of an new installation...' - echo 'Hostname given is' $(hostname)'...' - echo 'Renaming ioBroker...' - sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host) - rm -f /opt/iobroker/.install_host - echo 'Done.' -fi - -# Checking for and setting up avahi-daemon -if [ "$avahi" = "true" ] -then - echo '' - echo 'Initializing Avahi-Daemon...' - chmod 764 /opt/scripts/setup_avahi.sh - sh /opt/scripts/setup_avahi.sh - echo 'Done.' -fi - -sleep 5 - -# Starting ioBroker -echo '' -echo 'Starting ioBroker...' -echo '' -echo '----------------------------------------' -echo '------- ioBroker Logging -------' -echo '----------------------------------------' -echo '' - -#touch /opt/iobroker/iobroker.log -#gosu iobroker node --trace-warnings node_modules/iobroker.js-controller/controller.js > /opt/iobroker/iobroker.log 2>&1 & -gosu iobroker node node_modules/iobroker.js-controller/controller.js - -# Preventing container restart by keeping a process alive even if iobroker will be stopped -tail -f /dev/null From c67fe82e6f4e3739263915cc25eb0155d1158721 Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 22 Oct 2019 14:30:08 +0200 Subject: [PATCH 2/9] changing docker repo --- .travis.yml | 34 +++++++++++++++++----------------- manifest.yml | 8 ++++---- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index aef3987..e1948f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,7 +30,7 @@ jobs: - JOB_NAME="Build images" script: - sed -i "s/\$VERSION/${VERSION}/g" $ARCH/scripts/iobroker_startup.sh - - docker build -t "buanet/iobroker-testing:$VERSION-$ARCH" ./amd64 + - docker build -t "buanet/iobroker:$VERSION-$ARCH" ./amd64 - stage: Build images env: @@ -39,7 +39,7 @@ jobs: script: - docker run --rm --privileged multiarch/qemu-user-static:register --reset - sed -i "s/\$VERSION/${VERSION}/g" $ARCH/scripts/iobroker_startup.sh - - docker build -t "buanet/iobroker-testing:$VERSION-$ARCH" ./aarch64 + - docker build -t "buanet/iobroker:$VERSION-$ARCH" ./aarch64 - stage: Build images env: @@ -48,7 +48,7 @@ jobs: script: - docker run --rm --privileged multiarch/qemu-user-static:register --reset - sed -i "s/\$VERSION/${VERSION}/g" $ARCH/scripts/iobroker_startup.sh - - docker build -t "buanet/iobroker-testing:$VERSION-$ARCH" ./armv7hf + - docker build -t "buanet/iobroker:$VERSION-$ARCH" ./armv7hf - stage: Manifest env: @@ -60,11 +60,11 @@ after_success: # tag and push built images - > if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Build images" ] ; then - docker push buanet/iobroker-testing:$VERSION-$ARCH + docker push buanet/iobroker:$VERSION-$ARCH fi if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Build images" ] ; then - docker push buanet/iobroker-testing:$VERSION-$ARCH + docker push buanet/iobroker:$VERSION-$ARCH fi # update repository manifest for multiarch and push to hub @@ -72,34 +72,34 @@ after_success: if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then cat manifest.yml | sed "s/\$VERSION/${VERSION}/g" > manifest.yaml - #manifest for image: buanet/iobroker-testing:version + #manifest for image: buanet/iobroker:version cat manifest.yaml | sed "s/\$DOCKERTAG/${VERSION}/g" > manifestversion.yaml - #manifest for image: buanet/iobroker-testing:latest + #manifest for image: buanet/iobroker:latest cat manifest.yaml | sed "s/\$DOCKERTAG/latest/g" > manifestlatest.yaml #push to hub - mv manifestversion.yaml iobroker-testing.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + mv manifestversion.yaml iobroker.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml - mv manifestlatest.yaml iobroker-testing.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + mv manifestlatest.yaml iobroker.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml fi if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then cat manifest.yml | sed "s/\$VERSION/${VERSION}/g" > manifest.yaml - #manifest for image: buanet/iobroker-testing:version + #manifest for image: buanet/iobroker:version cat manifest.yaml | sed "s/\$DOCKERTAG/${VERSION}/g" > manifestversion.yaml - #manifest for image: buanet/iobroker-testing:beta + #manifest for image: buanet/iobroker:beta cat manifest.yaml | sed "s/\$DOCKERTAG/beta/g" > manifestbeta.yaml #push to hub - mv manifestversion.yaml iobroker-testing.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + mv manifestversion.yaml iobroker.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml - mv manifestbeta.yaml iobroker-testing.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker-testing.yaml + mv manifestbeta.yaml iobroker.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml fi diff --git a/manifest.yml b/manifest.yml index cc75783..ae9fa3b 100644 --- a/manifest.yml +++ b/manifest.yml @@ -1,18 +1,18 @@ -image: buanet/iobroker-testing:$DOCKERTAG +image: buanet/iobroker:$DOCKERTAG manifests: - - image: buanet/iobroker-testing:$VERSION-amd64 + image: buanet/iobroker:$VERSION-amd64 platform: architecture: amd64 os: linux - - image: buanet/iobroker-testing:$VERSION-aarch64 + image: buanet/iobroker:$VERSION-aarch64 platform: architecture: arm64 variant: v8 os: linux - - image: buanet/iobroker-testing:$VERSION-armv7hf + image: buanet/iobroker:$VERSION-armv7hf platform: architecture: arm variant: v7 From 85ffcfd00a825891509c1e00bc92c1d11e2d4348 Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 22 Oct 2019 14:40:47 +0200 Subject: [PATCH 3/9] change secure --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e1948f4..885322b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,8 +12,8 @@ language: bash env: global: - - secure: "LnAvKBxbcqOz650+gb2BTLvhHR1t9PTCQv274IWIGLHqHB9u6mgM0wRpr8MR7mzxpi21QjFelkc1XIkRKR4w07+1OR259+lNYAIGjITKA7iIr1/MVgt0MGlclA6AXQGMV2398TLvkmd/3egvbjBYm7wwmcESnI43w050qhaygQR2PY7bwA/1K4O7LI3FVFPRu2Q78QK/PfLAy2923k+eTtwFstz1q/CmySKpAWNOvUthX2WcZbQOXRgr7+OZrSVwcqReu0ZUfuBp79nMZcXAXxPBu7RelP3GaFMsyxMGJlrLIlv97pQLOaoJ2T9/ZmvDqEtFmi6vzuukDGsWmZx13ZUiEAn+XFQUtpACf77h61b6jC2lzqXQlSJG7Uy2W2f0BPMBSQelVxoiONbzyjtptcjTX+xb0jnyTjQgOo2IZa8f8D55D+XsRJfc25u77323iH2x8blESslW3L52XZDXno0nwoa9LCj5bjDVlQ2jMpzedj88yjk9ss6HUwL/xDThmV74f/tL9R7n7M9WsT4RBkBIOOce/yRKF0rhGZDXY+uC8dg0mTYWeSXOJPmqIi59lZyKYR5WBupdts4/Q3b+mI7BAX8HTxjHw450G0iX1Dh5MSf3kgKoPbu03CC7l+XPgRVu9j4brUQ6uN9DVCjomlDzJzMN6EFR+meSIwhUR8Y=" - - secure: "eJui3AAugMETkg+E5CAN3F7707/WG9Ueq7rTE6QBuSFuLprhbTwZJGRCuf6iYuwQeHfUyP3JJDsUI1aasnkdLMr2sgKpNhmJ93J/8pCzlNDWbzskPAsIZ3vvXW0Dvcg9ALN7RBeG9fyOoJW2RmhQYE4oqIZQDXX/qBzDZbTzclB8O74ENu2M7hiQtKieYN/hrbmBVgLftScvbClBIwR+yCSMuan9ivyoiZnRq9RxoWpiyi+U+45A4jTO7ZWvSYpF4Rj6QlJyx4bfEhscvOwP5Vg834SKgBFU82HjFofKcH0jMeoH0ohFmpgEhrtFF3BF3cMPrz3dGJTt3Jwf3DUuLmBeN/im4omqVlysTq2AaTdrIDMnBP0sQUekKcXeqOwMZxFx4nm5cl86VAfa/DeqjuXabv2LEwidHxHRziuzwpzsRMCF1Q5EU56jyFCaKMXwzlTCrRvYNRhk+y2rdWatvOnnmsin7OmgDBY3PcFLDR3gGb4hqLt1ZE5+LaPofXWx3AF4k/Ovtaw5gaVzA4xoMs4w0jBIUl8GhutqVpYYDkjETIy47Nxf2QBBLvnSZR0eNBzA3Qd3j6RswFsEjDiB3UcsznlNmM+CGj1OzqkiIX7ggW+C05KMpyGjhugk90TjMh7HH/MmZD0FZlYvyJHb3EmAe4jgyZ3B6MU86BpjG0c=" + - secure: "iqK7JBsQiYceKOvRkmSa6okzXn3BygEPZjffby4agaVCwIt2SYLAcBOisOoKDpyAX+DUWlHz3gITImVa+uIna6Ue7k4C2AGJVDr87G6iq57Tn6yjrfhPs/TW9/CWvKg/G4uvKEnycMiLDXdcctSMwRr3ZwzJEdeEdmNZVsd2LP/5U0I/2K2Io22tNciSKhqlSaIfhK4f6Jk7xffnQFjwy+P9qPN18oI1fDyeHx6ZWyN3YhQQ4eGyxHjxZjlhCxSvu5R4DMf1jFIoLRAr6G5jrQacn0pG8PtBVLoYT4RsPy+fwUtXmnWWjeXK0IrU1njZf/DUteI9xnaDcHzZYj+d7MeSUc6BuWOyx9lO3ZwBWDNycYsKaF5so4RpdzoY/gfJMlK3uWDbADb46dWzPD5gb3pEROKau3fBDHS5eaR5e1Bxzz6FGoYWYfsQHqpg9g7v4BRFq+Jh0+v47fdyMxgK/Nm4+r7+ht77Usu29+X6X8F4iwrBJ/ix5xIf7iMoH/ZGvq6BEKi/1t9zdXMugcWOqwlYx9k6J9bQhBfw8YucLmgl3ynzrPaLlPEpY9cnb7hcOUDZoHI7KK2zF/y3yfNr2BqlRbm39HFWfnwuJPO5VLYGs5QubeVj9u1M+5Qo4erPuQBBc4mHP4eF2PmRA+wiVWki0z+U2skFQppkCfrbH8c=" + - secure: "iqoZUcWgZueNQrNldF/ugwyU1LR5E+doTfjY0exQqAKjntG5n2QqYZ/+dX1gqvkfy1kuMINTBWfqSALbhfTTK7EfUjqmcnaks4CMVZQkhH/FyCOYHqSBSSN7j4XeHt1sXn1FRiSpyrZOUoOuyqoBRe3JoWhdQZAGxNzX3sJllwnKa6M0D6D2l9tUyTWO/jxhgTIoYBSrXvb68ZsCU9jlNBJbylfvEFwuSlwvfa+Mz9vAeCTuza9XDnvcxgwVq3r+YGxfmAhK9fOAvN+lPN+KA0LcIzBaW0sh24voqjfh/pLpsl03zeGNdWzS9r2qYPCP0N3asb5P6CVEbbAGYO1T5PvU78ILXGi4+/x/32O6/I9oXpMVQCFHNn0Gn/8BPRHY4ZOYI9ItnhV9Ncp7hhAWAAqf3KC5GM89l9R5KxFY3bhN/p8nuGresUDU5d57YkaV8rOhPpr0dbAyKFtuzG0+bT1N2ekXyTyMHeAGKiGwfD9bAS4qx6asFO5uw6UriBHNzJ59Cy3GT+W1CctaEuvqJlc6Iqz2KaBozEqnNFcpE2Grny4bzr5fp+b1qCO9TE2LhHU/LR5FTLjQ2wf9/raTM6yboq+guKeXxpySa2w8ABDq0OUAw4mrKqJQJohzBkl3oYTpWUG2JGEyMAJxjkmH0/3GwZESPNLaaYVjQByTDDY=" - VERSION="$(cat .VERSION)" before_install: From 97a4d02f0daaf8b0b84a903cff6e5a8dbace46cf Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 22 Oct 2019 17:03:50 +0200 Subject: [PATCH 4/9] update manifest --- .travis.yml | 36 ++++++++++++++++++++++++++++++++++++ manifest_aarch64.yml | 8 ++++++++ manifest_amd64.yml | 7 +++++++ manifest_armv7hf.yml | 8 ++++++++ 4 files changed, 59 insertions(+) create mode 100644 manifest_aarch64.yml create mode 100644 manifest_amd64.yml create mode 100644 manifest_armv7hf.yml diff --git a/.travis.yml b/.travis.yml index 885322b..e1ee2c8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -77,6 +77,15 @@ after_success: #manifest for image: buanet/iobroker:latest cat manifest.yaml | sed "s/\$DOCKERTAG/latest/g" > manifestlatest.yaml + + #manifest for image: buanet/iobroker:VERSION-amd64 + cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml + + #manifest for image: buanet/iobroker:VERSION-armv7hf + cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml + + #manifest for image: buanet/iobroker:VERSION-aarch64 + cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml #push to hub mv manifestversion.yaml iobroker.yaml @@ -84,6 +93,15 @@ after_success: mv manifestlatest.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml + + mv manifest_amd64.yaml manifest.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + + mv manifest_armv7hf.yaml manifest.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + + mv manifest_aarch64.yaml manifest.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml fi if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then @@ -96,10 +114,28 @@ after_success: #manifest for image: buanet/iobroker:beta cat manifest.yaml | sed "s/\$DOCKERTAG/beta/g" > manifestbeta.yaml + #manifest for image: buanet/iobroker:VERSION-amd64 + cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml + + #manifest for image: buanet/iobroker:VERSION-armv7hf + cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml + + #manifest for image: buanet/iobroker:VERSION-aarch64 + cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml + #push to hub mv manifestversion.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml mv manifestbeta.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml + + mv manifest_amd64.yaml manifest.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + + mv manifest_armv7hf.yaml manifest.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + + mv manifest_aarch64.yaml manifest.yaml + ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml fi diff --git a/manifest_aarch64.yml b/manifest_aarch64.yml new file mode 100644 index 0000000..0f98f77 --- /dev/null +++ b/manifest_aarch64.yml @@ -0,0 +1,8 @@ +image: buanet/iobroker-testing:$VERSION-aarch64 +manifests: + - + image: buanet/iobroker-testing:$VERSION-aarch64 + platform: + architecture: arm64 + variant: v8 + os: linux \ No newline at end of file diff --git a/manifest_amd64.yml b/manifest_amd64.yml new file mode 100644 index 0000000..b7dffd5 --- /dev/null +++ b/manifest_amd64.yml @@ -0,0 +1,7 @@ +image: buanet/iobroker-testing:$VERSION-amd64 +manifests: + - + image: buanet/iobroker-testing:$VERSION-amd64 + platform: + architecture: amd64 + os: linux \ No newline at end of file diff --git a/manifest_armv7hf.yml b/manifest_armv7hf.yml new file mode 100644 index 0000000..6b9dc3a --- /dev/null +++ b/manifest_armv7hf.yml @@ -0,0 +1,8 @@ +image: buanet/iobroker-testing:$VERSION-armv7hf +manifests: + - + image: buanet/iobroker-testing:$VERSION-armv7hf + platform: + architecture: arm + variant: v7 + os: linux \ No newline at end of file From 7e31f7f18a1730b5b72b03ae7889c1d2836020d1 Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 22 Oct 2019 19:46:12 +0200 Subject: [PATCH 5/9] Update .travis.yml --- .travis.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index e1ee2c8..2ee5804 100644 --- a/.travis.yml +++ b/.travis.yml @@ -79,13 +79,13 @@ after_success: cat manifest.yaml | sed "s/\$DOCKERTAG/latest/g" > manifestlatest.yaml #manifest for image: buanet/iobroker:VERSION-amd64 - cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml + #cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml #manifest for image: buanet/iobroker:VERSION-armv7hf - cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml + #cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml #manifest for image: buanet/iobroker:VERSION-aarch64 - cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml + #cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml #push to hub mv manifestversion.yaml iobroker.yaml @@ -94,14 +94,14 @@ after_success: mv manifestlatest.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml - mv manifest_amd64.yaml manifest.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + #mv manifest_amd64.yaml manifest.yaml + #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - mv manifest_armv7hf.yaml manifest.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + #mv manifest_armv7hf.yaml manifest.yaml + #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - mv manifest_aarch64.yaml manifest.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + #mv manifest_aarch64.yaml manifest.yaml + #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml fi if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then @@ -115,13 +115,13 @@ after_success: cat manifest.yaml | sed "s/\$DOCKERTAG/beta/g" > manifestbeta.yaml #manifest for image: buanet/iobroker:VERSION-amd64 - cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml + #cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml #manifest for image: buanet/iobroker:VERSION-armv7hf - cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml + #cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml #manifest for image: buanet/iobroker:VERSION-aarch64 - cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml + #cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml #push to hub mv manifestversion.yaml iobroker.yaml @@ -130,12 +130,12 @@ after_success: mv manifestbeta.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml - mv manifest_amd64.yaml manifest.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + #mv manifest_amd64.yaml manifest.yaml + #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - mv manifest_armv7hf.yaml manifest.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + #mv manifest_armv7hf.yaml manifest.yaml + #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - mv manifest_aarch64.yaml manifest.yaml - ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml + #mv manifest_aarch64.yaml manifest.yaml + #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml fi From b67ca2de1934b49b29fabac6f16d5f3c313c1d43 Mon Sep 17 00:00:00 2001 From: buanet Date: Wed, 23 Oct 2019 10:51:15 +0200 Subject: [PATCH 6/9] added zwave support --- .VERSION | 2 +- .travis.yml | 36 ----------------------------- README.md | 8 ++++--- aarch64/Dockerfile | 7 +++--- aarch64/scripts/iobroker_startup.sh | 13 ++++++++++- aarch64/scripts/setup_zwave.sh | 19 +++++++++++++++ amd64/Dockerfile | 7 +++--- amd64/scripts/iobroker_startup.sh | 13 ++++++++++- amd64/scripts/setup_zwave.sh | 19 +++++++++++++++ armv7hf/Dockerfile | 7 +++--- armv7hf/scripts/iobroker_startup.sh | 13 ++++++++++- armv7hf/scripts/setup_zwave.sh | 19 +++++++++++++++ manifest_aarch64.yml | 8 ------- manifest_amd64.yml | 7 ------ manifest_armv7hf.yml | 8 ------- 15 files changed, 108 insertions(+), 78 deletions(-) create mode 100644 aarch64/scripts/setup_zwave.sh create mode 100644 amd64/scripts/setup_zwave.sh create mode 100644 armv7hf/scripts/setup_zwave.sh delete mode 100644 manifest_aarch64.yml delete mode 100644 manifest_amd64.yml delete mode 100644 manifest_armv7hf.yml diff --git a/.VERSION b/.VERSION index 7bf73df..03b253c 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v3.1.3beta +v3.1.4beta \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 2ee5804..885322b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -77,15 +77,6 @@ after_success: #manifest for image: buanet/iobroker:latest cat manifest.yaml | sed "s/\$DOCKERTAG/latest/g" > manifestlatest.yaml - - #manifest for image: buanet/iobroker:VERSION-amd64 - #cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml - - #manifest for image: buanet/iobroker:VERSION-armv7hf - #cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml - - #manifest for image: buanet/iobroker:VERSION-aarch64 - #cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml #push to hub mv manifestversion.yaml iobroker.yaml @@ -93,15 +84,6 @@ after_success: mv manifestlatest.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml - - #mv manifest_amd64.yaml manifest.yaml - #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - - #mv manifest_armv7hf.yaml manifest.yaml - #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - - #mv manifest_aarch64.yaml manifest.yaml - #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml fi if [ "$TRAVIS_BRANCH" == "beta" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$JOB_NAME" == "Manifest" ]; then @@ -114,28 +96,10 @@ after_success: #manifest for image: buanet/iobroker:beta cat manifest.yaml | sed "s/\$DOCKERTAG/beta/g" > manifestbeta.yaml - #manifest for image: buanet/iobroker:VERSION-amd64 - #cat manifest_amd64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_amd64.yaml - - #manifest for image: buanet/iobroker:VERSION-armv7hf - #cat manifest_armv7hf.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_armv7hf.yaml - - #manifest for image: buanet/iobroker:VERSION-aarch64 - #cat manifest_aarch64.yml | sed "s/\$VERSION/${VERSION}/g" > manifest_aarch64.yaml - #push to hub mv manifestversion.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml mv manifestbeta.yaml iobroker.yaml ./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec iobroker.yaml - - #mv manifest_amd64.yaml manifest.yaml - #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - - #mv manifest_armv7hf.yaml manifest.yaml - #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml - - #mv manifest_aarch64.yaml manifest.yaml - #./manifest-tool --username $HUB_USER --password $HUB_PASS push from-spec manifest.yaml fi diff --git a/README.md b/README.md index a01d7e1..104f628 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ IoBroker for Docker is an Dockerimage for ioBroker (http://iobroker.net) smartho It is originally made for, and tested on a Synology Disk Station 1515+ with DSM 6 and Docker-package installed. But it should also work on other systems with Docker installed! -Version 4 now supports running the Image in Docker on the following architectures: amd64, armv7hf, aarch64. +Version 4 (coming soon, at the moment still as 3.1.4beta) now supports running the Image in Docker on the following architectures: amd64, armv7hf, aarch64. Feel free to ask for more architectures by opening an github-issue. ## Important -The new v4 comes again with a new major node-version (node10)! +The new v4 (coming soon, at the moment still as 3.1.4beta) comes again with a new major node-version (node10)! If you are updating an existing Installation you have to perform some additional steps inside ioBroker! After upgrading your iobroker-container you have to call "reinstall.sh" for recompiling your installation for the use with node10! For Details see official ioBroker-documentation (http://www.iobroker.net/docu/?page_id=8323&lang=de). Make backup first! @@ -39,6 +39,7 @@ Since v3 is possible to set some environment variables to configure a new contai |TZ|Europe/Berlin|all valid Linux-timezones| |SETUID|1000|for security reasons it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host| |SETGID|1000|for security reasons it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host| +|ZWAVE|false|will install openzwave to support zwave-adapter| ### Mounting Folder/ Volume @@ -54,7 +55,8 @@ After some issues with permissions related to the use of a dedicated user for io ## Changelog -### v4.0.0 (2019-10-22) +### v3.1.4beta (2019-10-23) + * added env for zwave support * v3.1.3beta (2019-10-17) * enhanced logging of startup-script * multiarch support (amd64, aarch64, armv7hf) diff --git a/aarch64/Dockerfile b/aarch64/Dockerfile index 85c5655..69f7db8 100644 --- a/aarch64/Dockerfile +++ b/aarch64/Dockerfile @@ -4,9 +4,6 @@ MAINTAINER Andre Germann ENV DEBIAN_FRONTEND noninteractive -# Debugging for multiarch -RUN uname -m - # Install prerequisites RUN apt-get update && apt-get upgrade -y && apt-get install -y \ acl \ @@ -44,6 +41,7 @@ WORKDIR /opt/scripts/ COPY scripts/iobroker_startup.sh iobroker_startup.sh COPY scripts/setup_avahi.sh setup_avahi.sh COPY scripts/setup_packages.sh setup_packages.sh +COPY scripts/setup_zwave.sh setup_zwave.sh RUN chmod +x iobroker_startup.sh \ && chmod +x setup_avahi.sh \ && chmod +x setup_packages.sh @@ -76,7 +74,8 @@ ENV DEBIAN_FRONTEND="teletype" \ PACKAGES="nano" \ AVAHI="false" \ SETUID=1000 \ - SETGID=1000 + SETGID=1000 \ + ZWAVE="false" # Setting up EXPOSE for Admin EXPOSE 8081/tcp diff --git a/aarch64/scripts/iobroker_startup.sh b/aarch64/scripts/iobroker_startup.sh index 0c49ca8..e385f09 100644 --- a/aarch64/scripts/iobroker_startup.sh +++ b/aarch64/scripts/iobroker_startup.sh @@ -5,6 +5,7 @@ packages=$PACKAGES avahi=$AVAHI uid=$SETUID gid=$SETGID +zwave=$ZWAVE # Getting date and time for logging dati=`date '+%Y-%m-%d %H:%M:%S'` @@ -147,7 +148,17 @@ then echo "Initializing Avahi-Daemon..." chmod 764 /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh - echo 'Done.' + echo "Done." + echo ' ' +fi + +if [ "$zwave" = "true" ] +then + echo "ZWave is activated by ENV." + echo "Initializing ZWave-support..." + chmod 764 /opt/scripts/setup_zwave.sh + sh /opt/scripts/setup_avahi.sh + echo "Done." echo ' ' fi diff --git a/aarch64/scripts/setup_zwave.sh b/aarch64/scripts/setup_zwave.sh new file mode 100644 index 0000000..488af79 --- /dev/null +++ b/aarch64/scripts/setup_zwave.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "Checking openzwave installation state..." + +if [ -f /usr/local/lib64 ] +then + echo "Openzwave is NOT installed. Going to install it now..." + cd /opt + curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz + tar -xf openzwave-1.6.945.tar.gz && rm openzwave-1.6.945.tar.gz + cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null + ldconfig /usr/local/lib64 + cd /opt/iobroker + echo "Openzwave is now installed..." +else + echo "Openzwave is already installed..." +fi + +exit 0 \ No newline at end of file diff --git a/amd64/Dockerfile b/amd64/Dockerfile index 3c6654a..bc1b165 100644 --- a/amd64/Dockerfile +++ b/amd64/Dockerfile @@ -4,9 +4,6 @@ MAINTAINER Andre Germann ENV DEBIAN_FRONTEND noninteractive -# Debugging for multiarch -RUN uname -m - # Install prerequisites RUN apt-get update && apt-get upgrade -y && apt-get install -y \ acl \ @@ -44,6 +41,7 @@ WORKDIR /opt/scripts/ COPY scripts/iobroker_startup.sh iobroker_startup.sh COPY scripts/setup_avahi.sh setup_avahi.sh COPY scripts/setup_packages.sh setup_packages.sh +COPY scripts/setup_zwave.sh setup_zwave.sh RUN chmod +x iobroker_startup.sh \ && chmod +x setup_avahi.sh \ && chmod +x setup_packages.sh @@ -75,7 +73,8 @@ ENV DEBIAN_FRONTEND="teletype" \ PACKAGES="nano" \ AVAHI="false" \ SETUID=1000 \ - SETGID=1000 + SETGID=1000 \ + ZWAVE="false" # Setting up EXPOSE for Admin EXPOSE 8081/tcp diff --git a/amd64/scripts/iobroker_startup.sh b/amd64/scripts/iobroker_startup.sh index 0c49ca8..e385f09 100644 --- a/amd64/scripts/iobroker_startup.sh +++ b/amd64/scripts/iobroker_startup.sh @@ -5,6 +5,7 @@ packages=$PACKAGES avahi=$AVAHI uid=$SETUID gid=$SETGID +zwave=$ZWAVE # Getting date and time for logging dati=`date '+%Y-%m-%d %H:%M:%S'` @@ -147,7 +148,17 @@ then echo "Initializing Avahi-Daemon..." chmod 764 /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh - echo 'Done.' + echo "Done." + echo ' ' +fi + +if [ "$zwave" = "true" ] +then + echo "ZWave is activated by ENV." + echo "Initializing ZWave-support..." + chmod 764 /opt/scripts/setup_zwave.sh + sh /opt/scripts/setup_avahi.sh + echo "Done." echo ' ' fi diff --git a/amd64/scripts/setup_zwave.sh b/amd64/scripts/setup_zwave.sh new file mode 100644 index 0000000..488af79 --- /dev/null +++ b/amd64/scripts/setup_zwave.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "Checking openzwave installation state..." + +if [ -f /usr/local/lib64 ] +then + echo "Openzwave is NOT installed. Going to install it now..." + cd /opt + curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz + tar -xf openzwave-1.6.945.tar.gz && rm openzwave-1.6.945.tar.gz + cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null + ldconfig /usr/local/lib64 + cd /opt/iobroker + echo "Openzwave is now installed..." +else + echo "Openzwave is already installed..." +fi + +exit 0 \ No newline at end of file diff --git a/armv7hf/Dockerfile b/armv7hf/Dockerfile index 04cad35..293db80 100644 --- a/armv7hf/Dockerfile +++ b/armv7hf/Dockerfile @@ -4,9 +4,6 @@ MAINTAINER Andre Germann ENV DEBIAN_FRONTEND noninteractive -# Debugging for multiarch -RUN uname -m - # Install prerequisites RUN apt-get update && apt-get upgrade -y && apt-get install -y \ acl \ @@ -44,6 +41,7 @@ WORKDIR /opt/scripts/ COPY scripts/iobroker_startup.sh iobroker_startup.sh COPY scripts/setup_avahi.sh setup_avahi.sh COPY scripts/setup_packages.sh setup_packages.sh +COPY scripts/setup_zwave.sh setup_zwave.sh RUN chmod +x iobroker_startup.sh \ && chmod +x setup_avahi.sh \ && chmod +x setup_packages.sh @@ -76,7 +74,8 @@ ENV DEBIAN_FRONTEND="teletype" \ PACKAGES="nano" \ AVAHI="false" \ SETUID=1000 \ - SETGID=1000 + SETGID=1000 \ + ZWAVE="false" # Setting up EXPOSE for Admin EXPOSE 8081/tcp diff --git a/armv7hf/scripts/iobroker_startup.sh b/armv7hf/scripts/iobroker_startup.sh index 0c49ca8..e385f09 100644 --- a/armv7hf/scripts/iobroker_startup.sh +++ b/armv7hf/scripts/iobroker_startup.sh @@ -5,6 +5,7 @@ packages=$PACKAGES avahi=$AVAHI uid=$SETUID gid=$SETGID +zwave=$ZWAVE # Getting date and time for logging dati=`date '+%Y-%m-%d %H:%M:%S'` @@ -147,7 +148,17 @@ then echo "Initializing Avahi-Daemon..." chmod 764 /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh - echo 'Done.' + echo "Done." + echo ' ' +fi + +if [ "$zwave" = "true" ] +then + echo "ZWave is activated by ENV." + echo "Initializing ZWave-support..." + chmod 764 /opt/scripts/setup_zwave.sh + sh /opt/scripts/setup_avahi.sh + echo "Done." echo ' ' fi diff --git a/armv7hf/scripts/setup_zwave.sh b/armv7hf/scripts/setup_zwave.sh new file mode 100644 index 0000000..488af79 --- /dev/null +++ b/armv7hf/scripts/setup_zwave.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +echo "Checking openzwave installation state..." + +if [ -f /usr/local/lib64 ] +then + echo "Openzwave is NOT installed. Going to install it now..." + cd /opt + curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz + tar -xf openzwave-1.6.945.tar.gz && rm openzwave-1.6.945.tar.gz + cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null + ldconfig /usr/local/lib64 + cd /opt/iobroker + echo "Openzwave is now installed..." +else + echo "Openzwave is already installed..." +fi + +exit 0 \ No newline at end of file diff --git a/manifest_aarch64.yml b/manifest_aarch64.yml deleted file mode 100644 index 0f98f77..0000000 --- a/manifest_aarch64.yml +++ /dev/null @@ -1,8 +0,0 @@ -image: buanet/iobroker-testing:$VERSION-aarch64 -manifests: - - - image: buanet/iobroker-testing:$VERSION-aarch64 - platform: - architecture: arm64 - variant: v8 - os: linux \ No newline at end of file diff --git a/manifest_amd64.yml b/manifest_amd64.yml deleted file mode 100644 index b7dffd5..0000000 --- a/manifest_amd64.yml +++ /dev/null @@ -1,7 +0,0 @@ -image: buanet/iobroker-testing:$VERSION-amd64 -manifests: - - - image: buanet/iobroker-testing:$VERSION-amd64 - platform: - architecture: amd64 - os: linux \ No newline at end of file diff --git a/manifest_armv7hf.yml b/manifest_armv7hf.yml deleted file mode 100644 index 6b9dc3a..0000000 --- a/manifest_armv7hf.yml +++ /dev/null @@ -1,8 +0,0 @@ -image: buanet/iobroker-testing:$VERSION-armv7hf -manifests: - - - image: buanet/iobroker-testing:$VERSION-armv7hf - platform: - architecture: arm - variant: v7 - os: linux \ No newline at end of file From 7b0f8f5ba947d41bdfd5ac01280aa9720d42da26 Mon Sep 17 00:00:00 2001 From: buanet Date: Wed, 23 Oct 2019 11:42:04 +0200 Subject: [PATCH 7/9] small fix for zwave --- aarch64/scripts/iobroker_startup.sh | 2 +- amd64/scripts/iobroker_startup.sh | 2 +- armv7hf/scripts/iobroker_startup.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/aarch64/scripts/iobroker_startup.sh b/aarch64/scripts/iobroker_startup.sh index e385f09..10328fa 100644 --- a/aarch64/scripts/iobroker_startup.sh +++ b/aarch64/scripts/iobroker_startup.sh @@ -157,7 +157,7 @@ then echo "ZWave is activated by ENV." echo "Initializing ZWave-support..." chmod 764 /opt/scripts/setup_zwave.sh - sh /opt/scripts/setup_avahi.sh + sh /opt/scripts/setup_zwave.sh echo "Done." echo ' ' fi diff --git a/amd64/scripts/iobroker_startup.sh b/amd64/scripts/iobroker_startup.sh index e385f09..10328fa 100644 --- a/amd64/scripts/iobroker_startup.sh +++ b/amd64/scripts/iobroker_startup.sh @@ -157,7 +157,7 @@ then echo "ZWave is activated by ENV." echo "Initializing ZWave-support..." chmod 764 /opt/scripts/setup_zwave.sh - sh /opt/scripts/setup_avahi.sh + sh /opt/scripts/setup_zwave.sh echo "Done." echo ' ' fi diff --git a/armv7hf/scripts/iobroker_startup.sh b/armv7hf/scripts/iobroker_startup.sh index e385f09..10328fa 100644 --- a/armv7hf/scripts/iobroker_startup.sh +++ b/armv7hf/scripts/iobroker_startup.sh @@ -157,7 +157,7 @@ then echo "ZWave is activated by ENV." echo "Initializing ZWave-support..." chmod 764 /opt/scripts/setup_zwave.sh - sh /opt/scripts/setup_avahi.sh + sh /opt/scripts/setup_zwave.sh echo "Done." echo ' ' fi From 90458ae6b7495f97d75b7a08c7d4668ac605cf9a Mon Sep 17 00:00:00 2001 From: buanet Date: Wed, 23 Oct 2019 11:50:31 +0200 Subject: [PATCH 8/9] small fixes --- aarch64/scripts/iobroker_startup.sh | 2 -- aarch64/scripts/setup_avahi.sh | 14 +++++++------- aarch64/scripts/setup_zwave.sh | 6 +++--- amd64/scripts/iobroker_startup.sh | 2 -- amd64/scripts/setup_avahi.sh | 14 +++++++------- amd64/scripts/setup_zwave.sh | 6 +++--- armv7hf/scripts/iobroker_startup.sh | 2 -- armv7hf/scripts/setup_avahi.sh | 14 +++++++------- armv7hf/scripts/setup_zwave.sh | 6 +++--- 9 files changed, 30 insertions(+), 36 deletions(-) diff --git a/aarch64/scripts/iobroker_startup.sh b/aarch64/scripts/iobroker_startup.sh index 10328fa..68e9537 100644 --- a/aarch64/scripts/iobroker_startup.sh +++ b/aarch64/scripts/iobroker_startup.sh @@ -145,7 +145,6 @@ echo ' ' if [ "$avahi" = "true" ] then echo "Avahi-daemon is activated by ENV." - echo "Initializing Avahi-Daemon..." chmod 764 /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh echo "Done." @@ -155,7 +154,6 @@ fi if [ "$zwave" = "true" ] then echo "ZWave is activated by ENV." - echo "Initializing ZWave-support..." chmod 764 /opt/scripts/setup_zwave.sh sh /opt/scripts/setup_zwave.sh echo "Done." diff --git a/aarch64/scripts/setup_avahi.sh b/aarch64/scripts/setup_avahi.sh index 469331b..2f64a72 100644 --- a/aarch64/scripts/setup_avahi.sh +++ b/aarch64/scripts/setup_avahi.sh @@ -1,18 +1,18 @@ #!/bin/bash -echo 'Checking avahi-daemon installation state...' +echo "Checking avahi-daemon installation state..." if [ -f /usr/sbin/avahi-daemon ] then - echo 'Avahi already installed...' + echo "Avahi is already installed..." else - echo 'Installing avahi-daemon...' + echo "Avahi-daemon is NOT installed. Going to install it now..." apt-get update > /opt/scripts/avahi_startup.log 2>&1 apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1 - echo 'Configuring avahi-daemon...' + echo "Configuring avahi-daemon..." sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf - echo 'Configuring dbus...' + echo "Configuring dbus..." mkdir /var/run/dbus/ fi @@ -26,10 +26,10 @@ then rm -f /var/run/avahi-daemon//pid fi -echo 'Starting dbus...' +echo "Starting dbus..." dbus-daemon --system -echo 'Starting avahi-daemon...' +echo "Starting avahi-daemon..." /etc/init.d/avahi-daemon start exit 0 diff --git a/aarch64/scripts/setup_zwave.sh b/aarch64/scripts/setup_zwave.sh index 488af79..2a76051 100644 --- a/aarch64/scripts/setup_zwave.sh +++ b/aarch64/scripts/setup_zwave.sh @@ -4,6 +4,8 @@ echo "Checking openzwave installation state..." if [ -f /usr/local/lib64 ] then + echo "Openzwave is already installed..." +else echo "Openzwave is NOT installed. Going to install it now..." cd /opt curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz @@ -11,9 +13,7 @@ then cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null ldconfig /usr/local/lib64 cd /opt/iobroker - echo "Openzwave is now installed..." -else - echo "Openzwave is already installed..." + # echo "Openzwave is now installed..." fi exit 0 \ No newline at end of file diff --git a/amd64/scripts/iobroker_startup.sh b/amd64/scripts/iobroker_startup.sh index 10328fa..68e9537 100644 --- a/amd64/scripts/iobroker_startup.sh +++ b/amd64/scripts/iobroker_startup.sh @@ -145,7 +145,6 @@ echo ' ' if [ "$avahi" = "true" ] then echo "Avahi-daemon is activated by ENV." - echo "Initializing Avahi-Daemon..." chmod 764 /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh echo "Done." @@ -155,7 +154,6 @@ fi if [ "$zwave" = "true" ] then echo "ZWave is activated by ENV." - echo "Initializing ZWave-support..." chmod 764 /opt/scripts/setup_zwave.sh sh /opt/scripts/setup_zwave.sh echo "Done." diff --git a/amd64/scripts/setup_avahi.sh b/amd64/scripts/setup_avahi.sh index 469331b..2f64a72 100644 --- a/amd64/scripts/setup_avahi.sh +++ b/amd64/scripts/setup_avahi.sh @@ -1,18 +1,18 @@ #!/bin/bash -echo 'Checking avahi-daemon installation state...' +echo "Checking avahi-daemon installation state..." if [ -f /usr/sbin/avahi-daemon ] then - echo 'Avahi already installed...' + echo "Avahi is already installed..." else - echo 'Installing avahi-daemon...' + echo "Avahi-daemon is NOT installed. Going to install it now..." apt-get update > /opt/scripts/avahi_startup.log 2>&1 apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1 - echo 'Configuring avahi-daemon...' + echo "Configuring avahi-daemon..." sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf - echo 'Configuring dbus...' + echo "Configuring dbus..." mkdir /var/run/dbus/ fi @@ -26,10 +26,10 @@ then rm -f /var/run/avahi-daemon//pid fi -echo 'Starting dbus...' +echo "Starting dbus..." dbus-daemon --system -echo 'Starting avahi-daemon...' +echo "Starting avahi-daemon..." /etc/init.d/avahi-daemon start exit 0 diff --git a/amd64/scripts/setup_zwave.sh b/amd64/scripts/setup_zwave.sh index 488af79..2a76051 100644 --- a/amd64/scripts/setup_zwave.sh +++ b/amd64/scripts/setup_zwave.sh @@ -4,6 +4,8 @@ echo "Checking openzwave installation state..." if [ -f /usr/local/lib64 ] then + echo "Openzwave is already installed..." +else echo "Openzwave is NOT installed. Going to install it now..." cd /opt curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz @@ -11,9 +13,7 @@ then cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null ldconfig /usr/local/lib64 cd /opt/iobroker - echo "Openzwave is now installed..." -else - echo "Openzwave is already installed..." + # echo "Openzwave is now installed..." fi exit 0 \ No newline at end of file diff --git a/armv7hf/scripts/iobroker_startup.sh b/armv7hf/scripts/iobroker_startup.sh index 10328fa..68e9537 100644 --- a/armv7hf/scripts/iobroker_startup.sh +++ b/armv7hf/scripts/iobroker_startup.sh @@ -145,7 +145,6 @@ echo ' ' if [ "$avahi" = "true" ] then echo "Avahi-daemon is activated by ENV." - echo "Initializing Avahi-Daemon..." chmod 764 /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh echo "Done." @@ -155,7 +154,6 @@ fi if [ "$zwave" = "true" ] then echo "ZWave is activated by ENV." - echo "Initializing ZWave-support..." chmod 764 /opt/scripts/setup_zwave.sh sh /opt/scripts/setup_zwave.sh echo "Done." diff --git a/armv7hf/scripts/setup_avahi.sh b/armv7hf/scripts/setup_avahi.sh index 469331b..2f64a72 100644 --- a/armv7hf/scripts/setup_avahi.sh +++ b/armv7hf/scripts/setup_avahi.sh @@ -1,18 +1,18 @@ #!/bin/bash -echo 'Checking avahi-daemon installation state...' +echo "Checking avahi-daemon installation state..." if [ -f /usr/sbin/avahi-daemon ] then - echo 'Avahi already installed...' + echo "Avahi is already installed..." else - echo 'Installing avahi-daemon...' + echo "Avahi-daemon is NOT installed. Going to install it now..." apt-get update > /opt/scripts/avahi_startup.log 2>&1 apt-get install -y libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1 - echo 'Configuring avahi-daemon...' + echo "Configuring avahi-daemon..." sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf - echo 'Configuring dbus...' + echo "Configuring dbus..." mkdir /var/run/dbus/ fi @@ -26,10 +26,10 @@ then rm -f /var/run/avahi-daemon//pid fi -echo 'Starting dbus...' +echo "Starting dbus..." dbus-daemon --system -echo 'Starting avahi-daemon...' +echo "Starting avahi-daemon..." /etc/init.d/avahi-daemon start exit 0 diff --git a/armv7hf/scripts/setup_zwave.sh b/armv7hf/scripts/setup_zwave.sh index 488af79..2a76051 100644 --- a/armv7hf/scripts/setup_zwave.sh +++ b/armv7hf/scripts/setup_zwave.sh @@ -4,6 +4,8 @@ echo "Checking openzwave installation state..." if [ -f /usr/local/lib64 ] then + echo "Openzwave is already installed..." +else echo "Openzwave is NOT installed. Going to install it now..." cd /opt curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz @@ -11,9 +13,7 @@ then cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null ldconfig /usr/local/lib64 cd /opt/iobroker - echo "Openzwave is now installed..." -else - echo "Openzwave is already installed..." + # echo "Openzwave is now installed..." fi exit 0 \ No newline at end of file From cc2174285e187a84ec3037d89c5afb67ffda4bf7 Mon Sep 17 00:00:00 2001 From: buanet Date: Wed, 23 Oct 2019 14:11:52 +0200 Subject: [PATCH 9/9] fixes output for zwave --- aarch64/scripts/setup_zwave.sh | 4 ++-- amd64/scripts/setup_zwave.sh | 4 ++-- armv7hf/scripts/setup_zwave.sh | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/aarch64/scripts/setup_zwave.sh b/aarch64/scripts/setup_zwave.sh index 2a76051..ff1b82f 100644 --- a/aarch64/scripts/setup_zwave.sh +++ b/aarch64/scripts/setup_zwave.sh @@ -8,9 +8,9 @@ then else echo "Openzwave is NOT installed. Going to install it now..." cd /opt - curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz + curl -s -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz tar -xf openzwave-1.6.945.tar.gz && rm openzwave-1.6.945.tar.gz - cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null + cd openzwave-1.6.945 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 ldconfig /usr/local/lib64 cd /opt/iobroker # echo "Openzwave is now installed..." diff --git a/amd64/scripts/setup_zwave.sh b/amd64/scripts/setup_zwave.sh index 2a76051..ff1b82f 100644 --- a/amd64/scripts/setup_zwave.sh +++ b/amd64/scripts/setup_zwave.sh @@ -8,9 +8,9 @@ then else echo "Openzwave is NOT installed. Going to install it now..." cd /opt - curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz + curl -s -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz tar -xf openzwave-1.6.945.tar.gz && rm openzwave-1.6.945.tar.gz - cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null + cd openzwave-1.6.945 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 ldconfig /usr/local/lib64 cd /opt/iobroker # echo "Openzwave is now installed..." diff --git a/armv7hf/scripts/setup_zwave.sh b/armv7hf/scripts/setup_zwave.sh index 2a76051..ff1b82f 100644 --- a/armv7hf/scripts/setup_zwave.sh +++ b/armv7hf/scripts/setup_zwave.sh @@ -8,9 +8,9 @@ then else echo "Openzwave is NOT installed. Going to install it now..." cd /opt - curl -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz + curl -s -L -O http://old.openzwave.com/downloads/openzwave-1.6.945.tar.gz tar -xf openzwave-1.6.945.tar.gz && rm openzwave-1.6.945.tar.gz - cd openzwave-1.6.945 && make 2>&1 /dev/null && make install 2>&1 /dev/null + cd openzwave-1.6.945 && make > /dev/null 2>&1 && make install > /dev/null 2>&1 ldconfig /usr/local/lib64 cd /opt/iobroker # echo "Openzwave is now installed..."