This commit is contained in:
buanet
2020-02-08 19:53:20 +01:00
parent c291608aa0
commit 49700dc148
2 changed files with 56 additions and 49 deletions

View File

@@ -79,17 +79,14 @@ RUN chsh -s /bin/bash iobroker \
&& usermod --home /opt/iobroker iobroker && usermod --home /opt/iobroker iobroker
# Setting up ENVs # Setting up ENVs
ENV AVAHI="false" \ ENV DEBIAN_FRONTEND="teletype" \
DEBIAN_FRONTEND="teletype" \
LANG="de_DE.UTF-8" \ LANG="de_DE.UTF-8" \
LANGUAGE="de_DE:de" \ LANGUAGE="de_DE:de" \
LC_ALL="de_DE.UTF-8" \ LC_ALL="de_DE.UTF-8" \
PACKAGES="vi" \ PACKAGES="vi" \
SETGID=1000 \ SETGID=1000 \
SETUID=1000 \ SETUID=1000 \
TZ="Europe/Berlin" \ TZ="Europe/Berlin"
USBDEVICES="none" \
ZWAVE="false"
# Run startup-script # Run startup-script
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]

View File

@@ -3,15 +3,15 @@
# Reading ENV # Reading ENV
adminport=$IOB_ADMINPORT adminport=$IOB_ADMINPORT
avahi=$AVAHI avahi=$AVAHI
gid=$SETGID
objectsdbhost=$IOB_OBJECTSDB_HOST objectsdbhost=$IOB_OBJECTSDB_HOST
objectsdbport=$IOB_OBJECTSDB_PORT objectsdbport=$IOB_OBJECTSDB_PORT
objectsdbtype=$IOB_OBJECTSDB_TYPE objectsdbtype=$IOB_OBJECTSDB_TYPE
packages=$PACKAGES packages=$PACKAGES
setgid=$SETGID
setuid=$SETUID
statesdbhost=$IOB_STATESDB_HOST statesdbhost=$IOB_STATESDB_HOST
statesdbport=$IOB_STATESDB_PORT statesdbport=$IOB_STATESDB_PORT
statesdbtype=$IOB_STATESDB_TYPE statesdbtype=$IOB_STATESDB_TYPE
uid=$SETUID
usbdevices=$USBDEVICES usbdevices=$USBDEVICES
zwave=$ZWAVE zwave=$ZWAVE
@@ -42,14 +42,13 @@ 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" ADMINPORT: $ADMINPORT)" && echo " -----" if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" ADMINPORT: $adminport)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $AVAHI)" && echo " -----" if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $avahi)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $PACKAGES)" && echo " -----" if [ "$packages" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $packages)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" REDIS: $REDIS)" && echo " -----" if [ "$setgid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $setgid)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $SETGID)" && echo " -----" if [ "$setuid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $setuid)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $SETUID)" && echo " -----" if [ "$usbdevices" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" USBDEVICES: $usbdevices)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" USBDEVICES: $USBDEVICES)" && echo " -----" if [ "$zwave" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" ZWAVE: $zwave)" && echo " -----"; fi
echo -n "----- " && echo -n "$(printf "%-10s %-23s" ZWAVE: $ZWAVE)" && echo " -----"
echo "$(printf -- '-%.0s' {1..60})" echo "$(printf -- '-%.0s' {1..60})"
echo ' ' echo ' '
@@ -76,17 +75,16 @@ fi
echo ' ' echo ' '
# Checking and setting uid/gid # Checking and setting uid/gid
if [ $(cat /etc/group | grep 'iobroker:' | cut -d':' -f3) != $gid ] || [ $(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3) != $uid ] if [ $(cat /etc/group | grep 'iobroker:' | cut -d':' -f3) != $setgid ] || [ $(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3) != $setuid ]
then then
echo "Different UID and/ or GID is set by ENV." echo "Different UID and/ or GID is set by ENV."
echo "Changing UID to "$uid" and GID to "$gid"..." echo "Changing UID to "$setuid" and GID to "$setgid"..."
usermod -u $uid iobroker usermod -u $setuid iobroker
groupmod -g $gid iobroker groupmod -g $setgid iobroker
echo "Done." echo "Done."
else echo ' '
echo "There are no changes in UID/ GID needed."
fi fi
echo ' '
# Change directory for next steps # Change directory for next steps
cd /opt/iobroker cd /opt/iobroker
@@ -144,8 +142,8 @@ echo ' '
# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts" # (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts"
echo "(Re)Setting folder permissions (This might take a while! Please be patient!)..." echo "(Re)Setting folder permissions (This might take a while! Please be patient!)..."
chown -R $uid:$gid /opt/iobroker chown -R $setuid:$setgid /opt/iobroker
chown -R $uid:$gid /opt/scripts chown -R $setuid:$setgid /opt/scripts
echo "Done." echo "Done."
echo ' ' echo ' '
@@ -188,6 +186,7 @@ echo "Some adapters have special requirements/ settings which can be activated b
echo "For more information take a look at readme.md on Github!" echo "For more information take a look at readme.md on Github!"
echo ' ' echo ' '
# Checking ENV for Adminport # Checking ENV for Adminport
if [ "$adminport" != "" ] if [ "$adminport" != "" ]
then then
@@ -201,40 +200,51 @@ then
fi fi
fi fi
# Checking ENV for AVAHI # Checking ENV for AVAHI
if [ "$avahi" = "true" ] if [ "$avahi" != "" ]
then then
echo "Avahi-daemon is activated by ENV." if [ "$avahi" = "true" ]
chmod 755 /opt/scripts/setup_avahi.sh then
bash /opt/scripts/setup_avahi.sh echo "Avahi-daemon is activated by ENV."
echo "Done." chmod 755 /opt/scripts/setup_avahi.sh
echo ' ' bash /opt/scripts/setup_avahi.sh
echo "Done."
echo ' '
fi
fi fi
# Checking ENV for Z-WAVE # Checking ENV for Z-WAVE
if [ "$zwave" = "true" ] if [ "$zwave" != "" ]
then then
echo "Z-Wave is activated by ENV." if [ "$zwave" = "true" ]
chmod 755 /opt/scripts/setup_zwave.sh then
bash /opt/scripts/setup_zwave.sh echo "Z-Wave is activated by ENV."
echo "Done." chmod 755 /opt/scripts/setup_zwave.sh
echo ' ' bash /opt/scripts/setup_zwave.sh
echo "Done."
echo ' '
fi
fi fi
# checking ENV for USBDEVICES
if [ "$usbdevices" != "none" ]
then
echo "Usb-device-support is activated by ENV."
IFS=';' read -ra devicearray <<< "$usbdevices" # checking ENV for USBDEVICES
for i in "${devicearray[@]}" if [ "$usbdevices" != "" ]
do then
echo "Setting permissions for" $i"..." if [ "$usbdevices" != "none" ]
chown root:dialout $i then
chmod g+rw $i echo "Usb-device-support is activated by ENV."
done IFS=';' read -ra devicearray <<< "$usbdevices"
echo "Done." for i in "${devicearray[@]}"
echo ' ' do
echo "Setting permissions for" $i"..."
chown root:dialout $i
chmod g+rw $i
done
echo "Done."
echo ' '
fi
fi fi