Merge branch 'master' into master

This commit is contained in:
Andre
2019-09-02 08:51:43 +02:00
committed by GitHub
2 changed files with 71 additions and 84 deletions

132
README.md
View File

@@ -1,14 +1,12 @@
# docker-iobroker # docker-iobroker
Docker image for ioBroker (http://iobroker.net) based on debian:latest (http://hub.docker.com/_/debian/) Docker image for ioBroker (http://iobroker.net) based on debian:stretch (http://hub.docker.com/_/debian/)
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 (Normally I do a small additional test on my Debian-VM with Docker CE)! 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!
## Important ## 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!!! 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!!!
At the moment v3.0.0 does no longer support running in host-mode on Synology-devices because of a kernel issue in actual DSM-kernel! Please use bridged or macvlan mode. For details see new tutorial linked in the following.
## 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 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!
@@ -29,8 +27,8 @@ In v3.0.0 I added some new features. The following will give some short informat
|LANG|de_DE.UTF-8|following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8| |LANG|de_DE.UTF-8|following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8|
|LC_ALL|de_DE|following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8| |LC_ALL|de_DE|following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8|
|TZ|Europe/Berlin|all valid Linux-timezones| |TZ|Europe/Berlin|all valid Linux-timezones|
|HOSTUID|1000|new UID you need to match from 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|
|HOSTGID|1000|new GID you need to match from 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|
### Mounting Folder/ Volume ### Mounting Folder/ Volume
@@ -42,83 +40,73 @@ This also works with mounting a folder containing an existing ioBroker-installat
### Permission Fixer ### 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 be patient! 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!
## Changelog ## Changelog
### v3.0.3beta (2019-08-20) ### v3.1.1beta (2019-09-02)
* you can provide a userid and a groupid from your host system. permissions will be applied. * adding env for setting uid/ gid for iobroker-user
### v3.0.2beta (2019-06-13) ### v3.1.0 (2019-08-21)
* using gosu instead of sudo * v3.0.3beta (2019-08-21)
* changing output of ioBroker logging * switching base image from "debian:latest" to "debian:stretch"
* v3.0.2beta (2019-06-13)
### v3.0.1beta (2019-05-18) * using gosu instead of sudo
* ~~switching back to iobroker-daemon for startup~~ * changing output of ioBroker logging
* v3.0.1beta (2019-05-18)
* ~~switching back to iobroker-daemon for startup~~
### v3.0.0 (2019-05-09) ### v3.0.0 (2019-05-09)
* bringing changes since v2.0.0 to stable * v2.0.6beta (2019-04-14)
* new tutorial available * added some additional logging
* fixing some issues for languag env
### v2.0.6beta (2019-04-14) * added permission fixing on first start
* added some additional logging * v2.0.5beta (2019-02-09)
* fixing some issues for languag env * added ENV to dockerfile
* added permission fixing on first start * added EXPOSE for admin
* final testing
### v2.0.5beta (2019-02-09) * v2.0.4beta (2019-01-28)
* added ENV to dockerfile * added support for env variables "avahi" and "packages"
* added EXPOSE for admin * moving avahi-daemon installation into avahi startup script
* final testing * added script for installing optional packages
* optimizing logging output
### v2.0.4beta (2019-01-28) * v2.0.3beta (2019-01-24)
* added support for env variables "avahi" and "packages" * added support for running ioBroker under iobroker user
* moving avahi-daemon installation into avahi startup script * optimizing logging output
* added script for installing optional packages * optimizing scripts
* optimizing logging output * v2.0.2beta (2019-01-23)
* optimizing and rearraged dockerfile
### v2.0.3beta (2019-01-24) * changes for new ioBroker install script
* added support for running ioBroker under iobroker user * added restoring for empty mounted /opt/iobroker folder
* optimizing logging output * some more small fixes
* optimizing scripts * v2.0.1beta (2019-01-07)
* some changes for supporting other docker-environments than synology ds
### v2.0.2beta (2019-01-23)
* optimizing and rearraged dockerfile
* changes for new ioBroker install script
* added restoring for empty mounted /opt/iobroker folder
* some more small fixes
### v2.0.1beta (2019-01-07)
* some changes for supporting other docker-environments than synology ds
### v2.0.0 (2018-12-05) ### v2.0.0 (2018-12-05)
* using node8 instead of node6 * v1.2.2beta (2018-12-05)
* changes for new iobroker setup * using node8 instead of node6
* changes for new iobroker setup
### v1.2.1beta (2018-09-12) * v1.2.1beta (2018-09-12)
* added support for firetv-adapter * added support for firetv-adapter
### v1.2.0 (2018-08-21) ### v1.2.0 (2018-08-21)
* after testing making 1.1.3beta to latest stable release * v1.1.3beta (2018-08-21)
* added ffmpeg-package for yahka to support webcams
* v1.1.2beta (2018-04-04)
* added ENV for timezone issue
* v1.1.1beta (2018-03-29)
* added wget package
* updated readme.md
### v1.1.3beta (2018-08-21) ### v1.1.0 (2017-12-10)
* added ffmpeg-package for yahka to support webcams * v1.0.2beta (2017-12-10)
* changed startup call to fix restart issue
### v1.1.2beta (2018-04-04) * fixed avahi startup issue
* added ENV for timezone issue * fixed hostname issue
* added z-wave support
### v1.1.1beta (2018-03-29) * added logging to /opt/scripts/docker_iobroker_log.txt
* added wget package * v1.0.1beta (2017-08-25)
* updated readme.md * fixed locales issue
### v1.1.0 (2017-12-10)
* changed startup call to fix restart issue
* fixed avahi startup issue
* fixed hostname issue
* added z-wave support
* added logging to /opt/scripts/docker_iobroker_log.txt
### v1.0.1beta (2017-08-25)
* fixed locales issue
### v1.0.0 (2017-08-22) ### v1.0.0 (2017-08-22)
* moved and renamed iobroker startup script * moved and renamed iobroker startup script

View File

@@ -3,8 +3,8 @@
# Reading env-variables # Reading env-variables
packages=$PACKAGES packages=$PACKAGES
avahi=$AVAHI avahi=$AVAHI
uid=$HOSTUID uid=$SETUID
gid=$HOSTGID gid=$SETGID
# 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'`
@@ -12,9 +12,8 @@ dati=`date '+%Y-%m-%d %H:%M:%S'`
# Information # Information
echo '' echo ''
echo '----------------------------------------' echo '----------------------------------------'
echo '----- Image-Version: 3.0.3beta -----' echo '----- Image-Version: 3.1.1beta -----'
echo '----- '$dati' -----' echo '----- '$dati' -----'
echo '----- uid: '$uid' gid: '$gid' -----'
echo '----------------------------------------' echo '----------------------------------------'
echo '' echo ''
echo 'Startupscript running...' echo 'Startupscript running...'
@@ -27,7 +26,7 @@ then
echo 'The following packages will be installed:' $packages echo 'The following packages will be installed:' $packages
echo $packages > /opt/scripts/.packages echo $packages > /opt/scripts/.packages
sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1 sh /opt/scripts/setup_packages.sh > /opt/scripts/setup_packages.log 2>&1
echo 'Installing additional packages done...' echo 'Done.'
fi fi
cd /opt/iobroker cd /opt/iobroker
@@ -39,14 +38,14 @@ then
echo 'Directory /opt/iobroker is empty!' echo 'Directory /opt/iobroker is empty!'
echo 'Restoring data from image...' echo 'Restoring data from image...'
tar -xf /opt/initial_iobroker.tar -C / tar -xf /opt/initial_iobroker.tar -C /
echo 'Restoring done...' echo 'Done.'
fi fi
# Checking for first run and change permissions # Checking for first run and set uid/gid and permissions
if [ -f /opt/.firstrun ] if [ -f /opt/.firstrun ]
then then
echo '' echo ''
echo 'Changing permissions upon first run (This might take a while! Please be patient!)...' echo 'Changing uid/gid and permissions upon first run (This might take a while! Please be patient!)...'
echo 'Changing user and group ids' echo 'Changing user and group ids'
usermod -u $uid iobroker usermod -u $uid iobroker
groupmod -g $gid iobroker groupmod -g $gid iobroker
@@ -55,7 +54,7 @@ then
chown -R $uid:$gid /opt/iobroker chown -R $uid:$gid /opt/iobroker
chown -R $uid:$gid /opt/scripts chown -R $uid:$gid /opt/scripts
rm -f /opt/.firstrun rm -f /opt/.firstrun
echo 'Changing permissions done...' echo 'Done.'
fi fi
# Backing up original iobroker-file and changing sudo to gosu # Backing up original iobroker-file and changing sudo to gosu
@@ -72,7 +71,7 @@ then
echo 'Renaming ioBroker...' echo 'Renaming ioBroker...'
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 'Renaming ioBroker done...' echo 'Done.'
fi fi
# Checking for and setting up avahi-daemon # Checking for and setting up avahi-daemon
@@ -82,7 +81,7 @@ then
echo 'Initializing Avahi-Daemon...' echo 'Initializing Avahi-Daemon...'
chmod 764 /opt/scripts/setup_avahi.sh chmod 764 /opt/scripts/setup_avahi.sh
sh /opt/scripts/setup_avahi.sh sh /opt/scripts/setup_avahi.sh
echo 'Initializing Avahi-Daemon done...' echo 'Done.'
fi fi
sleep 5 sleep 5