diff --git a/.VERSION b/.VERSION index 6c9bb72..6a80297 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v9.1.0-beta.1 \ No newline at end of file +v9.1.0-beta.2 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index badb3d7..a2acd4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,15 @@ ## Changelog -### v9.1.0-beta.1 (03.11.2023) -* improve maintenance command by symlinking ([#390](https://github.com/buanet/ioBroker.docker/issues/390)) -* fix restore/ adding backup file selection ([#394](https://github.com/buanet/ioBroker.docker/issues/394)) -* fix calling iob start|stop with parameters -* enhance logging in iobroker_startup.sh -* add error handling for user scripts +### v9.1.0-beta.2 (coming soon) +* add env PACKAGES_UPDATE and remove automatic package updates on first container start +* improve setuid/setgid handling during startup ([#397](https://github.com/buanet/ioBroker.docker/issues/397)) +* move maintenance script registration to dockerfile ([#390](https://github.com/buanet/ioBroker.docker/issues/390)) +* v9.1.0-beta.1 (03.11.2023) + * improve maintenance command by symlinking ([#390](https://github.com/buanet/ioBroker.docker/issues/390)) + * fix restore/ adding backup file selection ([#394](https://github.com/buanet/ioBroker.docker/issues/394)) + * fix calling iob start|stop with parameters + * enhance logging in iobroker_startup.sh + * add error handling for user scripts ### v9.0.1 (10.10.2023) * fix issue with avahi setup ([#384](https://github.com/buanet/ioBroker.docker/issues/384); [#385 by @z1r0](https://github.com/buanet/ioBroker.docker/pull/385)) diff --git a/debian12/Dockerfile b/debian12/Dockerfile index 4069a41..5b36c45 100644 --- a/debian12/Dockerfile +++ b/debian12/Dockerfile @@ -75,6 +75,10 @@ RUN apt-get update && apt-get upgrade -y \ && chown -R iobroker:iobroker /opt/scripts /opt/userscripts \ && chmod 755 /opt/scripts/*.sh \ && chmod 755 /opt/userscripts/*.sh \ + # register maintenance command + && ln -s /opt/scripts/maintenance.sh /bin/maintenance \ + && ln -s /opt/scripts/maintenance.sh /bin/maint \ + && ln -s /opt/scripts/maintenance.sh /bin/m \ # Clean up installation cache && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ && apt-get autoclean -y \ diff --git a/debian12/scripts/iobroker_startup.sh b/debian12/scripts/iobroker_startup.sh index 617b3dc..d47f364 100644 --- a/debian12/scripts/iobroker_startup.sh +++ b/debian12/scripts/iobroker_startup.sh @@ -17,17 +17,18 @@ offlinemode=$OFFLINE_MODE objectsdbhost=$IOB_OBJECTSDB_HOST objectsdbport=$IOB_OBJECTSDB_PORT objectsdbtype=$IOB_OBJECTSDB_TYPE -objectsdbname=$IOB_OBJECTSDB_NAME # new for sentinel support -objectsdbpass=$IOB_OBJECTSDB_PASS # new for auth support +objectsdbname=$IOB_OBJECTSDB_NAME +objectsdbpass=$IOB_OBJECTSDB_PASS packages=$PACKAGES +packagesupdate=$PACKAGES_UPDATE permissioncheck=$PERMISSION_CHECK setgid=$SETGID setuid=$SETUID statesdbhost=$IOB_STATESDB_HOST statesdbport=$IOB_STATESDB_PORT statesdbtype=$IOB_STATESDB_TYPE -statesdbname=$IOB_STATESDB_NAME # new for sentinel support -statesdbpass=$IOB_STATESDB_PASS # new for auth support +statesdbname=$IOB_STATESDB_NAME +statesdbpass=$IOB_STATESDB_PASS usbdevices=$USBDEVICES set -u @@ -132,10 +133,12 @@ if [[ -f /opt/.docker_config/.first_run ]]; then # Updating Linux packages if [[ "$offlinemode" = "true" ]]; then echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run." - else + echo " " + elif [[ "$packagesupdate" = "true" ]]; then if ! bash /opt/scripts/setup_packages.sh -update; then echo "Failed."; fi + echo " " fi - echo " " + # Installing packages from ENV if [[ "$packages" != "" && "$offlinemode" = "true" ]]; then echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation." @@ -144,19 +147,13 @@ if [[ -f /opt/.docker_config/.first_run ]]; then if ! bash /opt/scripts/setup_packages.sh -install; then echo "Failed."; fi fi echo " " - # Register maintenance script - echo -n "Registering maintenance script as command... " - ln -s /opt/scripts/maintenance.sh /bin/maintenance - ln -s /opt/scripts/maintenance.sh /bin/maint - ln -s /opt/scripts/maintenance.sh /bin/m - echo "Done." else echo "This is not the first run of this container. Skipping first run preparation." fi echo " " # Setting UID and/ or GID -if [[ "$setgid" != "$(cat /etc/group | grep 'iobroker:' | cut -d':' -f3)" || "$setuid" != "$(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3)" ]]; then +if [[ "$setgid" != "$(id -u iobroker)" || "$setuid" != "$(id -u iobroker)" ]]; then echo "SETUID and/ or SETGID are set to custom values." echo -n "Changing UID to \"""$setuid""\" and GID to \"""$setgid""\"... " usermod -u "$setuid" iobroker diff --git a/docs/README_docker_hub_buanet.md b/docs/README_docker_hub_buanet.md index 1f83f72..8f0d50d 100644 --- a/docs/README_docker_hub_buanet.md +++ b/docs/README_docker_hub_buanet.md @@ -124,6 +124,7 @@ You could use environment variables to auto configure your ioBroker container on * `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8 * `OFFLINE_MODE` (optional) Set `true` if your container has no or limited internet connection * `PACKAGES` (optional) Install additional Linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`. +* `PACKAGES_UPDATE` (optional) Set `true` if you want to apply Linux package updates at the first start of a new container. * `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!) * `SETGID` (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host * `SETUID` (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host diff --git a/docs/README_docker_hub_iobroker.md b/docs/README_docker_hub_iobroker.md index b3f8df1..7e260b3 100644 --- a/docs/README_docker_hub_iobroker.md +++ b/docs/README_docker_hub_iobroker.md @@ -126,6 +126,7 @@ You could use environment variables to auto configure your ioBroker container on * `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8 * `OFFLINE_MODE` (optional) Set `true` if your container has no or limited internet connection * `PACKAGES` (optional) Install additional Linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`. +* `PACKAGES_UPDATE` (optional) Set `true` if you want to apply Linux package updates at the first start of a new container. * `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!) * `SETGID` (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host * `SETUID` (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host