Merge pull request #49 from buanet/dev

dev to beta
This commit is contained in:
Andre
2019-11-25 23:17:23 +01:00
committed by GitHub
5 changed files with 71 additions and 24 deletions

View File

@@ -1,4 +1,7 @@
# ioBroker for Docker # ioBroker for Docker
[![Build Status](https://travis-ci.org/buanet/docker-iobroker.svg?branch=master)](https://travis-ci.org/buanet/docker-iobroker)
Source: https://github.com/buanet/docker-iobroker Source: https://github.com/buanet/docker-iobroker
IoBroker for Docker is an Dockerimage for ioBroker (http://iobroker.net) smarthome software. IoBroker for Docker is an Dockerimage for ioBroker (http://iobroker.net) smarthome software.
@@ -12,14 +15,14 @@ Feel free to ask for more architectures by opening an github-issue.
The new v4 comes again with a new major node-version (node10)! 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! 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! After upgrading your iobroker-container you have to call "reinstall.sh" for recompileing 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! 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 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! 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. 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 and features ## Special settings and features
@@ -40,6 +43,8 @@ Since v3 is possible to set some environment variables to configure a new contai
|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| |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| |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| |ZWAVE|false|will install openzwave to support zwave-adapter|
|ADMINPORT|8081|for setting iobroker adminport (beta feature!)|
|USBDEVICES|none|for automatically setting permissions on mounted devices like "/dev/ttyACM0". For more than one device separate with ";" (beta feature!)|
### Mounting Folder/ Volume ### Mounting Folder/ Volume
@@ -55,6 +60,12 @@ After some issues with permissions related to the use of a dedicated user for io
## Changelog ## Changelog
### v4.0.1beta (2019-11-25)
* added env for iobroker admin port
* added env for usb-devices (setting permissions)
* updateing prerequisites for iobroker installation
* some small codefixes
### v4.0.0 (2019-10-25) ### v4.0.0 (2019-10-25)
* v3.1.4beta (2019-10-23) * v3.1.4beta (2019-10-23)
* added env for zwave support * added env for zwave support

View File

@@ -4,7 +4,7 @@ MAINTAINER Andre Germann <https://buanet.de>
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
# Install prerequisites # Install prerequisites (as listed in iobroker installer.sh)
RUN apt-get update && apt-get upgrade -y && apt-get install -y \ RUN apt-get update && apt-get upgrade -y && apt-get install -y \
acl \ acl \
apt-utils \ apt-utils \
@@ -12,17 +12,21 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \
curl \ curl \
git \ git \
gnupg2 \ gnupg2 \
gosu \
libavahi-compat-libdnssd-dev \
libcap2-bin \ libcap2-bin \
libpam0g-dev \ libpam0g-dev \
libudev-dev \ libudev-dev \
locales \ locales \
procps \ pkg-config \
procps \
python \ python \
gosu \ python-dev \
sudo \
unzip \ unzip \
wget \ wget \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Install node10 # Install node10
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash \ RUN curl -sL https://deb.nodesource.com/setup_10.x | bash \
&& apt-get update && apt-get install -y \ && apt-get update && apt-get install -y \
@@ -61,8 +65,9 @@ RUN npm install -g node-gyp
# Backup initial ioBroker-folder # Backup initial ioBroker-folder
RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker RUN tar -cf /opt/initial_iobroker.tar /opt/iobroker
# Setting up iobroker-user # Setting up iobroker-user (shell and home directory)
RUN chsh -s /bin/bash iobroker RUN chsh -s /bin/bash iobroker \
&& usermod --home /opt/iobroker iobroker
# Setting up ENVs # Setting up ENVs
ENV DEBIAN_FRONTEND="teletype" \ ENV DEBIAN_FRONTEND="teletype" \
@@ -70,14 +75,13 @@ ENV DEBIAN_FRONTEND="teletype" \
LANGUAGE="de_DE:de" \ LANGUAGE="de_DE:de" \
LC_ALL="de_DE.UTF-8" \ LC_ALL="de_DE.UTF-8" \
TZ="Europe/Berlin" \ TZ="Europe/Berlin" \
PACKAGES="nano" \ PACKAGES="vi" \
ADMINPORT=8081 \
SETUID=1000 \
SETGID=1000 \
AVAHI="false" \ AVAHI="false" \
SETUID=1000 \ ZWAVE="false" \
SETGID=1000 \ USBDEVICES="none"
ZWAVE="false"
# Setting up EXPOSE for Admin
EXPOSE 8081/tcp
# Run startup-script # Run startup-script
ENTRYPOINT ["/opt/scripts/iobroker_startup.sh"] ENTRYPOINT ["/opt/scripts/iobroker_startup.sh"]

View File

@@ -2,10 +2,12 @@
# Reading ENV # Reading ENV
packages=$PACKAGES packages=$PACKAGES
avahi=$AVAHI adminport=$ADMINPORT
uid=$SETUID uid=$SETUID
gid=$SETGID gid=$SETGID
zwave=$ZWAVE zwave=$ZWAVE
avahi=$AVAHI
usbdevices=$USBDEVICES
# Getting date and time for logging # Getting date and time for logging
dati=`date '+%Y-%m-%d %H:%M:%S'` dati=`date '+%Y-%m-%d %H:%M:%S'`
@@ -34,8 +36,10 @@ echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -
echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----" echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----"
echo "----- -----" echo "----- -----"
echo "----- ENV -----" 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" PACKAGES: $PACKAGES)" && echo " -----"
echo -n "----- " && echo -n "$(printf "%-10s %-23s" ADMINPORT: $ADMINPORT)" && echo " -----"
echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----"
echo -n "----- " && echo -n "$(printf "%-10s %-23s" ZWAVE: $ZWAVE)" && echo " -----"
echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----" echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----"
echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----" echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----"
echo "$(printf -- '-%.0s' {1..60})" echo "$(printf -- '-%.0s' {1..60})"
@@ -125,8 +129,8 @@ if [ -f /opt/iobroker/.install_host ]
then then
echo "Looks like this is a new and empty installation of ioBroker." echo "Looks like this is a new and empty installation of ioBroker."
echo "Hostname needs to be updated to " $(hostname)"..." echo "Hostname needs to be updated to " $(hostname)"..."
sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host) sh /opt/iobroker/iobroker host $(cat /opt/iobroker/.install_host)
rm -f /opt/iobroker/.install_host rm -f /opt/iobroker/.install_host
echo 'Done.' echo 'Done.'
echo ' ' echo ' '
fi fi
@@ -141,7 +145,17 @@ echo "Some adapters have special requirements which can be activated by the use
echo "For more information take a look at readme.md" echo "For more information take a look at readme.md"
echo ' ' echo ' '
# Checking for and setting up avahi-daemon # Checking ENV for Adminport
if [ "$adminport" != "8081" ]
then
echo "Adminport is set by ENV."
echo "Setting Adminport to" $adminport"..."
iobroker set admin.0 --port $adminport
echo 'Done.'
echo ' '
fi
# Checking for enabled avahi-daemon
if [ "$avahi" = "true" ] if [ "$avahi" = "true" ]
then then
echo "Avahi-daemon is activated by ENV." echo "Avahi-daemon is activated by ENV."
@@ -151,15 +165,33 @@ then
echo ' ' echo ' '
fi fi
# Checking for enabled zwave-support
if [ "$zwave" = "true" ] if [ "$zwave" = "true" ]
then then
echo "ZWave is activated by ENV." echo "Z-Wave is activated by ENV."
chmod 764 /opt/scripts/setup_zwave.sh chmod 764 /opt/scripts/setup_zwave.sh
sh /opt/scripts/setup_zwave.sh sh /opt/scripts/setup_zwave.sh
echo "Done." echo "Done."
echo ' ' echo ' '
fi fi
# checking enabled usb-devices
if [ "$usbdevices" != "none" ]
then
echo "Usb-device-support is activated by ENV."
IFS=';' read -ra devicearray <<< "$usbdevices"
for i in "${devicearray[@]}"
do
echo "Setting permissions for" $i"..."
chown root:dialout $i
chmod g+rw $i
done
echo "Done."
echo ' '
fi
sleep 5 sleep 5
# Starting ioBroker # Starting ioBroker

View File

@@ -2,7 +2,7 @@
echo "Checking avahi-daemon installation state..." echo "Checking avahi-daemon installation state..."
if [ -f /usr/sbin/avahi-daemon ] if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
then then
echo "Avahi is already installed..." echo "Avahi is already installed..."
else else

View File

@@ -2,7 +2,7 @@
echo "Checking openzwave installation state..." echo "Checking openzwave installation state..."
if [ -f /usr/local/lib64 ] if [ -e /usr/local/lib64 ]
then then
echo "Openzwave is already installed..." echo "Openzwave is already installed..."
else else
@@ -16,4 +16,4 @@ else
# echo "Openzwave is now installed..." # echo "Openzwave is now installed..."
fi fi
exit 0 exit 0