* Download snapshot using Maven repository as workaround for Travis CI download issues
* Cleanup code for images that are no longer generated
* Upgrade base images (Alpine 3.12.0, Debian 10.4)
* Upgrade Zulu JDK to recent patch levels (8.0.252, 11.0.7)
Signed-off-by: Wouter Born <github@maindrain.net>
Switching to BuildKit has many advantages:
* openHAB images are now based on the official Debian and Alpine Docker images instead of the multiarch images which:
* fixes wrong architectures of non-amd64 images
* improves security because these official images are reviewed by a dedicated team sponsored by Docker
* allows for upgrading Alpine to 3.11 because of an issue the multiarch armhf image does not exist
* makes it possible to use the Debian "slim" image to further reduce the size of Debian images
* Multi architecture manifests are now generated automatically so we can remove the code for generating these and pushing them with manifest-tool
* Further reduces build times because images for different architectures are build in parallel
There is now a single Dockerfile per image instead of one for each architecture.
BuildKit does not provide a way to also generate tags containing architectures so these tags will no longer be generated.
Furthermore the Travis configuration has been updated so it will also automatically sync the README.md to Docker Hub.
Fixes#184
Signed-off-by: Wouter Born <github@maindrain.net>
* Add 2.5.0.M2
* Push images on master branch only
* Use --password-stdin option with docker login
* Add default GROUP_ID, USER_ID values to environment variables for easy overrides in certain UIs
* Remove uidmap, img installation because these commands are unused
* Configure Travis CI xenial dist
* Fix CodeFactor issues
Signed-off-by: Wouter Born <github@maindrain.net>
Reworks the update process to update the userdata in the container using the update.lst and userdata_sysfiles.lst files (provided by openhab-distro).
The update script has been modified for use in the container.
This adds the following new functionality when updating between versions:
* show update notes and warnings during the update (based on update.lst)
* execute the update pre/post commands (based on update.lst)
* replace userdata system files with newer versions (based on userdata_sysfiles.lst)
* update KAR files in addons dir by downloading newer versions
* log the update output in update.log
Other improvements are:
* declare and use common openHAB environment variables in scripts (OPENHAB_BACKUPS, OPENHAB_CONF, OPENHAB_HOME, OPENHAB_LOGDIR, OPENHAB_USERDATA)
* initialize empty volumes using a reusable method
* move all default volume data into the "dist" directory
* remove Windows PowerShell scripts from container images
Signed-off-by: Wouter Born <github@maindrain.net>
* Updates the OS in the Debian container to Debian 10 (buster) which is the current stable Debian release (see https://www.debian.org/News/2019/20190706)
* Updates the Zulu JDK inside the container to 1.8.0_222.
Signed-off-by: Wouter Born <github@maindrain.net>
* Update user/group ID and unlimited crypto documentation
Signed-off-by: Wouter Born <eclipse@maindrain.net>
* Rename existing group matching GROUP_ID environment variable to openhab
Signed-off-by: Wouter Born <eclipse@maindrain.net>
* Use Zulu 64-bit JVM in arm64 Debian images
The armhf images also work on arm64 so these can still be used when performance is an issue on hardware constrained devices.
* Fix charts not working on arm64 because 32-bit JVM doesn't work with fontconfig:arm64
* Reduce image size because armhf architecture and libc6:armhf fontconfig:armhf don't need to be installed
* Prevent QEMU issues because it has trouble executing 32-bit binaries in 64-bit mode when building images
* Make the image more similar to the Alpine image which also uses a 64-bit OpenJDK JVM
* Update Zulu download URLs to download 1.8.0_192
* Update README example to also use tini when openHAB is started as root.
Fixes#152
Signed-off-by: Wouter Born <eclipse@maindrain.net>
* Add 2.4.0.RC1, 2.4.0, 2.5.0-snapshot, generate README.md without using markers
Signed-off-by: Wouter Born <eclipse@maindrain.net>
* Use multi architecture image manifests
Additionaly several new tags have been added to multi-architecture images.
The complete list of tags is now:
openhab/openhab:<version>
openhab/openhab:<version>-<distribution>
openhab/openhab:<version>-<architecture>-<distribution>
openhab/openhab:latest
openhab/openhab:latest-<distribution>
openhab/openhab:milestone
openhab/openhab:milestone-<distribution>
openhab/openhab:snapshot
openhab/openhab:snapshot-<distribution>
* Fix Codacy issues
* Fix CodeFactor issues
Signed-off-by: Wouter Born <eclipse@maindrain.net>
* Reduce image sizes
* Cleanup APT and APK caches in same layers where they are generated
* Remove unused build dependencies dpkg, gnupg
* Remove unused Windows batch files
* Indent package installation command arguments for better readability
* Fix shutdown container gracefully
* Add tini to Alpine and Debian images
* Add KARAF_EXEC=exec to environment so java replaces bash shell after running start.sh
* Start runtime using tini as signal forwarder and process subreaper
Fixes#211
Signed-off-by: Wouter Born <eclipse@maindrain.net>
* Add 2.4.0.M7
Signed-off-by: Wouter Born <eclipse@maindrain.net>
Versions for which Docker images are generated are now managed in a versions file.
The update.sh scripts now:
* calls update-docker-files.sh for generating Dockerfiles based on the versions
* calls update-travis-config.sh to generate .travis.yml based on the versions
* calls update-readme.sh to update versions specific content in the README.md file
Furthermore:
* When a new stable release is added to the versions file the old milestone and snapshot builds are automatically removed from the build and the new snapshot is added.
* The unused i386 images have been removed.
* Only builds for the last 3 milestone versions are generated.
Signed-off-by: Wouter Born <eclipse@maindrain.net>
Often Travis fails to build all containers because the gosu GPG key fails to download.
The following changes should make this more stable:
* Update GPG keyserver list
** Remove keyserver.pgp.com from list since it does not have the gosu GPG key
** Add keyserver.ubuntu.com to list which does have the gosu GPG key
** Add port 80 only variants to prevent possible firewall issues
* Shuffle keyserver list to spread load over keyservers
* Retry 3 times before giving up
Add commands to Alpine entrypoint to use GROUP_ID environment variable.
Fixes#169.
Signed-off-by: Wouter Born <eclipse@maindrain.net>