From 239bc4150624b8157380c6f424806dcd647ed5d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Sep 2021 12:00:42 +0000 Subject: [PATCH 01/18] Bump actions/github-script from 3 to 5 Bumps [actions/github-script](https://github.com/actions/github-script) from 3 to 5. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v3...v5) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build-debian-image-beta-node14.yml | 2 +- .github/workflows/build-debian-image-beta.yml | 2 +- .github/workflows/build-debian-image-dev-node14.yml | 2 +- .github/workflows/build-debian-image-dev.yml | 2 +- .github/workflows/build-debian-image-main.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-debian-image-beta-node14.yml b/.github/workflows/build-debian-image-beta-node14.yml index f0b1e8b..8e4fa57 100644 --- a/.github/workflows/build-debian-image-beta-node14.yml +++ b/.github/workflows/build-debian-image-beta-node14.yml @@ -110,7 +110,7 @@ jobs: ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version-node14.yaml - name: Delete untagged images from GitHub packages - uses: actions/github-script@v3 + uses: actions/github-script@v5 with: github-token: ${{ secrets.PACKAGES_PASS }} script: | diff --git a/.github/workflows/build-debian-image-beta.yml b/.github/workflows/build-debian-image-beta.yml index b4c583c..9ac7bc2 100644 --- a/.github/workflows/build-debian-image-beta.yml +++ b/.github/workflows/build-debian-image-beta.yml @@ -110,7 +110,7 @@ jobs: ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version.yaml - name: Delete untagged images from GitHub packages - uses: actions/github-script@v3 + uses: actions/github-script@v5 with: github-token: ${{ secrets.PACKAGES_PASS }} script: | diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node14.yml index 0d6c0ac..a4d68cc 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node14.yml @@ -102,7 +102,7 @@ jobs: ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev-node14.yaml - name: Delete untagged images from GitHub packages - uses: actions/github-script@v3 + uses: actions/github-script@v5 with: github-token: ${{ secrets.PACKAGES_PASS }} script: | diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 929bbaa..ed087c5 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -102,7 +102,7 @@ jobs: ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev.yaml - name: Delete untagged images from GitHub packages - uses: actions/github-script@v3 + uses: actions/github-script@v5 with: github-token: ${{ secrets.PACKAGES_PASS }} script: | diff --git a/.github/workflows/build-debian-image-main.yml b/.github/workflows/build-debian-image-main.yml index 783059a..e2aebaa 100644 --- a/.github/workflows/build-debian-image-main.yml +++ b/.github/workflows/build-debian-image-main.yml @@ -112,7 +112,7 @@ jobs: ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version.yaml - name: Delete untagged images from GitHub packages - uses: actions/github-script@v3 + uses: actions/github-script@v5 with: github-token: ${{ secrets.PACKAGES_PASS }} script: | From f4fd69aa3485a7a1e609736b8a013451d4859165 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Sep 2021 12:00:47 +0000 Subject: [PATCH 02/18] Bump docker/setup-buildx-action from 1.5.1 to 1.6.0 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1.5.1 to 1.6.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v1.5.1...v1.6.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/build-debian-image-beta-node14.yml | 2 +- .github/workflows/build-debian-image-beta.yml | 2 +- .github/workflows/build-debian-image-dev-node14.yml | 2 +- .github/workflows/build-debian-image-dev.yml | 2 +- .github/workflows/build-debian-image-main.yml | 2 +- .github/workflows/build-debian-image-main_iob.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-debian-image-beta-node14.yml b/.github/workflows/build-debian-image-beta-node14.yml index f0b1e8b..5bb6828 100644 --- a/.github/workflows/build-debian-image-beta-node14.yml +++ b/.github/workflows/build-debian-image-beta-node14.yml @@ -50,7 +50,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1.5.1 + uses: docker/setup-buildx-action@v1.6.0 - name: Login to DockerHub uses: docker/login-action@v1.10.0 diff --git a/.github/workflows/build-debian-image-beta.yml b/.github/workflows/build-debian-image-beta.yml index b4c583c..ec9b817 100644 --- a/.github/workflows/build-debian-image-beta.yml +++ b/.github/workflows/build-debian-image-beta.yml @@ -50,7 +50,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1.5.1 + uses: docker/setup-buildx-action@v1.6.0 - name: Login to DockerHub uses: docker/login-action@v1.10.0 diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node14.yml index 0d6c0ac..c9e344e 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node14.yml @@ -46,7 +46,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1.5.1 + uses: docker/setup-buildx-action@v1.6.0 - name: Login to DockerHub uses: docker/login-action@v1.10.0 diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 929bbaa..80183d3 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -46,7 +46,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1.5.1 + uses: docker/setup-buildx-action@v1.6.0 - name: Login to DockerHub uses: docker/login-action@v1.10.0 diff --git a/.github/workflows/build-debian-image-main.yml b/.github/workflows/build-debian-image-main.yml index 783059a..9a12ac6 100644 --- a/.github/workflows/build-debian-image-main.yml +++ b/.github/workflows/build-debian-image-main.yml @@ -48,7 +48,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1.5.1 + uses: docker/setup-buildx-action@v1.6.0 - name: Login to DockerHub (buanet) uses: docker/login-action@v1.10.0 diff --git a/.github/workflows/build-debian-image-main_iob.yml b/.github/workflows/build-debian-image-main_iob.yml index ed4edba..db2498a 100644 --- a/.github/workflows/build-debian-image-main_iob.yml +++ b/.github/workflows/build-debian-image-main_iob.yml @@ -48,7 +48,7 @@ jobs: - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1.5.1 + uses: docker/setup-buildx-action@v1.6.0 - name: Login to DockerHub (iobroker) uses: docker/login-action@v1.10.0 From daa31f2e5f51db90b9e29ad50d021aa5d85ce420 Mon Sep 17 00:00:00 2001 From: buanet Date: Sat, 2 Oct 2021 19:26:49 +0200 Subject: [PATCH 03/18] fixing multiarch --- .../build-debian-image-dev-node14.yml | 4 +- .github/workflows/build-debian-image-dev.yml | 4 +- debian/node12/Dockerfile_arm32v7 | 89 +++++++++++++++++++ debian/node12/Dockerfile_arm64v8 | 89 +++++++++++++++++++ debian/node14/Dockerfile_arm32v7 | 89 +++++++++++++++++++ debian/node14/Dockerfile_arm64v8 | 89 +++++++++++++++++++ 6 files changed, 360 insertions(+), 4 deletions(-) create mode 100644 debian/node12/Dockerfile_arm32v7 create mode 100644 debian/node12/Dockerfile_arm64v8 create mode 100644 debian/node14/Dockerfile_arm32v7 create mode 100644 debian/node14/Dockerfile_arm64v8 diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node14.yml index 0d6c0ac..53fb171 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node14.yml @@ -76,7 +76,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node14/Dockerfile_arm32v7 push: true platforms: linux/arm/v7 tags: | @@ -87,7 +87,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node14/Dockerfile_arm64v8 push: true platforms: linux/arm64/v8 tags: | diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 929bbaa..d5b6dfc 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -76,7 +76,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node12/Dockerfile_arm32v7 push: true platforms: linux/arm/v7 tags: | @@ -87,7 +87,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node12/Dockerfile_arm64v8 push: true platforms: linux/arm64/v8 tags: | diff --git a/debian/node12/Dockerfile_arm32v7 b/debian/node12/Dockerfile_arm32v7 new file mode 100644 index 0000000..aed2833 --- /dev/null +++ b/debian/node12/Dockerfile_arm32v7 @@ -0,0 +1,89 @@ +FROM arm32v7/debian:bullseye-slim + +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ + org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ + org.opencontainers.image.version="${VERSION}" \ + org.opencontainers.image.created="${DATI}" + +ENV DEBIAN_FRONTEND noninteractive + +# Install prerequisites (including node) and generating locales +RUN apt-get update && apt-get install -y \ + curl \ + gosu \ + jq \ + locales \ + procps \ + sudo \ + udev \ + wget \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen \ + # Install node + && curl -sL https://deb.nodesource.com/setup_12.x | bash \ + && apt-get update && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* + +# Create scripts directorys and copy scripts +RUN mkdir -p /opt/scripts/ \ + && mkdir -p /opt/userscripts/ \ + && chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ +WORKDIR /opt/scripts/ +COPY scripts/* ./ +RUN chmod +x *.sh +WORKDIR /opt/userscripts/ +COPY userscripts/* ./ +RUN chmod +x *.sh + +# Install ioBroker +WORKDIR / +RUN apt-get update \ + && curl -sL https://iobroker.net/install.sh | bash - \ + && mkdir -p /opt/scripts/.docker_config/ \ + && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ + && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ + && echo $(hostname) > /opt/.firstrun \ + # Deleting UUID from build + && iobroker unsetup -y \ + # Backup initial ioBroker and userscript folder + && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ + && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ + && rm -rf /var/lib/apt/lists/* + +# Setting up iobroker-user (shell, home dir and rights) +RUN chsh -s /bin/bash iobroker \ + && usermod --home /opt/iobroker iobroker \ + && usermod -u 1000 iobroker \ + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu + +# Setting up default ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + SETGID=1000 \ + SETUID=1000 \ + TZ="Europe/Berlin" + +# Expose default admin ui port +EXPOSE 8081 + +# Change work dir +WORKDIR /opt/iobroker/ + +# Healthcheck +HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ + CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] + +# Run startup-script +ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/debian/node12/Dockerfile_arm64v8 b/debian/node12/Dockerfile_arm64v8 new file mode 100644 index 0000000..fa18f2b --- /dev/null +++ b/debian/node12/Dockerfile_arm64v8 @@ -0,0 +1,89 @@ +FROM arm64v8/debian:bullseye-slim + +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ + org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ + org.opencontainers.image.version="${VERSION}" \ + org.opencontainers.image.created="${DATI}" + +ENV DEBIAN_FRONTEND noninteractive + +# Install prerequisites (including node) and generating locales +RUN apt-get update && apt-get install -y \ + curl \ + gosu \ + jq \ + locales \ + procps \ + sudo \ + udev \ + wget \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen \ + # Install node + && curl -sL https://deb.nodesource.com/setup_12.x | bash \ + && apt-get update && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* + +# Create scripts directorys and copy scripts +RUN mkdir -p /opt/scripts/ \ + && mkdir -p /opt/userscripts/ \ + && chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ +WORKDIR /opt/scripts/ +COPY scripts/* ./ +RUN chmod +x *.sh +WORKDIR /opt/userscripts/ +COPY userscripts/* ./ +RUN chmod +x *.sh + +# Install ioBroker +WORKDIR / +RUN apt-get update \ + && curl -sL https://iobroker.net/install.sh | bash - \ + && mkdir -p /opt/scripts/.docker_config/ \ + && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ + && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ + && echo $(hostname) > /opt/.firstrun \ + # Deleting UUID from build + && iobroker unsetup -y \ + # Backup initial ioBroker and userscript folder + && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ + && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ + && rm -rf /var/lib/apt/lists/* + +# Setting up iobroker-user (shell, home dir and rights) +RUN chsh -s /bin/bash iobroker \ + && usermod --home /opt/iobroker iobroker \ + && usermod -u 1000 iobroker \ + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu + +# Setting up default ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + SETGID=1000 \ + SETUID=1000 \ + TZ="Europe/Berlin" + +# Expose default admin ui port +EXPOSE 8081 + +# Change work dir +WORKDIR /opt/iobroker/ + +# Healthcheck +HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ + CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] + +# Run startup-script +ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/debian/node14/Dockerfile_arm32v7 b/debian/node14/Dockerfile_arm32v7 new file mode 100644 index 0000000..36870d8 --- /dev/null +++ b/debian/node14/Dockerfile_arm32v7 @@ -0,0 +1,89 @@ +FROM arm32v7/debian:bullseye-slim + +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ + org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ + org.opencontainers.image.version="${VERSION}" \ + org.opencontainers.image.created="${DATI}" + +ENV DEBIAN_FRONTEND noninteractive + +# Install prerequisites (including node) and generating locales +RUN apt-get update && apt-get install -y \ + curl \ + gosu \ + jq \ + locales \ + procps \ + sudo \ + udev \ + wget \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen \ + # Install node + && curl -sL https://deb.nodesource.com/setup_14.x | bash \ + && apt-get update && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* + +# Create scripts directorys and copy scripts +RUN mkdir -p /opt/scripts/ \ + && mkdir -p /opt/userscripts/ \ + && chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ +WORKDIR /opt/scripts/ +COPY scripts/* ./ +RUN chmod +x *.sh +WORKDIR /opt/userscripts/ +COPY userscripts/* ./ +RUN chmod +x *.sh + +# Install ioBroker +WORKDIR / +RUN apt-get update \ + && curl -sL https://iobroker.net/install.sh | bash - \ + && mkdir -p /opt/scripts/.docker_config/ \ + && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ + && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ + && echo $(hostname) > /opt/.firstrun \ + # Deleting UUID from build + && iobroker unsetup -y \ + # Backup initial ioBroker and userscript folder + && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ + && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ + && rm -rf /var/lib/apt/lists/* + +# Setting up iobroker-user (shell, home dir and rights) +RUN chsh -s /bin/bash iobroker \ + && usermod --home /opt/iobroker iobroker \ + && usermod -u 1000 iobroker \ + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu + +# Setting up default ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + SETGID=1000 \ + SETUID=1000 \ + TZ="Europe/Berlin" + +# Expose default admin ui port +EXPOSE 8081 + +# Change work dir +WORKDIR /opt/iobroker/ + +# Healthcheck +HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ + CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] + +# Run startup-script +ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/debian/node14/Dockerfile_arm64v8 b/debian/node14/Dockerfile_arm64v8 new file mode 100644 index 0000000..0222472 --- /dev/null +++ b/debian/node14/Dockerfile_arm64v8 @@ -0,0 +1,89 @@ +FROM arm64v8/debian:bullseye-slim + +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ + org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ + org.opencontainers.image.version="${VERSION}" \ + org.opencontainers.image.created="${DATI}" + +ENV DEBIAN_FRONTEND noninteractive + +# Install prerequisites (including node) and generating locales +RUN apt-get update && apt-get install -y \ + curl \ + gosu \ + jq \ + locales \ + procps \ + sudo \ + udev \ + wget \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen \ + # Install node + && curl -sL https://deb.nodesource.com/setup_14.x | bash \ + && apt-get update && apt-get install -y nodejs \ + && rm -rf /var/lib/apt/lists/* + +# Create scripts directorys and copy scripts +RUN mkdir -p /opt/scripts/ \ + && mkdir -p /opt/userscripts/ \ + && chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ +WORKDIR /opt/scripts/ +COPY scripts/* ./ +RUN chmod +x *.sh +WORKDIR /opt/userscripts/ +COPY userscripts/* ./ +RUN chmod +x *.sh + +# Install ioBroker +WORKDIR / +RUN apt-get update \ + && curl -sL https://iobroker.net/install.sh | bash - \ + && mkdir -p /opt/scripts/.docker_config/ \ + && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ + && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ + && echo $(hostname) > /opt/.firstrun \ + # Deleting UUID from build + && iobroker unsetup -y \ + # Backup initial ioBroker and userscript folder + && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ + && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ + && rm -rf /var/lib/apt/lists/* + +# Setting up iobroker-user (shell, home dir and rights) +RUN chsh -s /bin/bash iobroker \ + && usermod --home /opt/iobroker iobroker \ + && usermod -u 1000 iobroker \ + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu + +# Setting up default ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + SETGID=1000 \ + SETUID=1000 \ + TZ="Europe/Berlin" + +# Expose default admin ui port +EXPOSE 8081 + +# Change work dir +WORKDIR /opt/iobroker/ + +# Healthcheck +HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ + CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] + +# Run startup-script +ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] From 8fd93071138fee5aaf08864a8eb10b4cc202f092 Mon Sep 17 00:00:00 2001 From: buanet Date: Sun, 3 Oct 2021 00:24:38 +0200 Subject: [PATCH 04/18] testing --- .../build-debian-image-dev-node14.yml | 4 +- .github/workflows/build-debian-image-dev.yml | 4 +- debian/node12/Dockerfile | 55 +++++++----- debian/node12/Dockerfile_arm32v7 | 89 ------------------- debian/node12/Dockerfile_arm64v8 | 89 ------------------- debian/node14/Dockerfile | 55 +++++++----- debian/node14/Dockerfile_arm32v7 | 89 ------------------- debian/node14/Dockerfile_arm64v8 | 89 ------------------- 8 files changed, 66 insertions(+), 408 deletions(-) delete mode 100644 debian/node12/Dockerfile_arm32v7 delete mode 100644 debian/node12/Dockerfile_arm64v8 delete mode 100644 debian/node14/Dockerfile_arm32v7 delete mode 100644 debian/node14/Dockerfile_arm64v8 diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node14.yml index 53fb171..0d6c0ac 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node14.yml @@ -76,7 +76,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node14/Dockerfile_arm32v7 + file: ./debian/node14/Dockerfile push: true platforms: linux/arm/v7 tags: | @@ -87,7 +87,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node14/Dockerfile_arm64v8 + file: ./debian/node14/Dockerfile push: true platforms: linux/arm64/v8 tags: | diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index d5b6dfc..929bbaa 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -76,7 +76,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node12/Dockerfile_arm32v7 + file: ./debian/node12/Dockerfile push: true platforms: linux/arm/v7 tags: | @@ -87,7 +87,7 @@ jobs: uses: docker/build-push-action@v2.6.1 with: context: ./debian - file: ./debian/node12/Dockerfile_arm64v8 + file: ./debian/node12/Dockerfile push: true platforms: linux/arm64/v8 tags: | diff --git a/debian/node12/Dockerfile b/debian/node12/Dockerfile index ddceb6e..2b575d4 100644 --- a/debian/node12/Dockerfile +++ b/debian/node12/Dockerfile @@ -14,39 +14,41 @@ ENV DEBIAN_FRONTEND noninteractive # Install prerequisites (including node) and generating locales RUN apt-get update && apt-get install -y \ + apt-utils \ + cifs-utils \ curl \ gosu \ jq \ locales \ + nfs-common \ procps \ + python3 \ + python3-dev \ sudo \ + tar \ + tzdata \ udev \ wget \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ # Install node && curl -sL https://deb.nodesource.com/setup_12.x | bash \ && apt-get update && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* + # Install node-gyp + && npm install -g node-gyp \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen -# Create scripts directorys and copy scripts -RUN mkdir -p /opt/scripts/ \ - && mkdir -p /opt/userscripts/ \ - && chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ -WORKDIR /opt/scripts/ -COPY scripts/* ./ -RUN chmod +x *.sh -WORKDIR /opt/userscripts/ -COPY userscripts/* ./ -RUN chmod +x *.sh +# Create directorys and copy scripts +COPY scripts /opt/scripts +COPY userscripts /opt/userscripts +RUN chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ \ + && chmod +x /opt/scripts/*.sh \ + && chmod +x /opt/userscripts/*.sh # Install ioBroker -WORKDIR / -RUN apt-get update \ - && curl -sL https://iobroker.net/install.sh | bash - \ +RUN curl -sL https://iobroker.net/install.sh | bash - \ && mkdir -p /opt/scripts/.docker_config/ \ && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ @@ -56,15 +58,20 @@ RUN apt-get update \ # Backup initial ioBroker and userscript folder && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - && rm -rf /var/lib/apt/lists/* - -# Setting up iobroker-user (shell, home dir and rights) -RUN chsh -s /bin/bash iobroker \ + # Setting up iobroker-user (shell, home dir and rights) + && chsh -s /bin/bash iobroker \ && usermod --home /opt/iobroker iobroker \ && usermod -u 1000 iobroker \ && groupmod -g 1000 iobroker \ && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu + && chmod +s /usr/sbin/gosu \ + # Clean up installation cache + && apt-get autoclean -y \ + && apt-get autoremove \ + && apt-get clean \ + && rm -rf /tmp/* /var/tmp/* \ + && rm -rf /root/.cache/* /root/.npm/* \ + && rm -rf /var/lib/apt/lists/* # Setting up default ENVs ENV DEBIAN_FRONTEND="teletype" \ diff --git a/debian/node12/Dockerfile_arm32v7 b/debian/node12/Dockerfile_arm32v7 deleted file mode 100644 index aed2833..0000000 --- a/debian/node12/Dockerfile_arm32v7 +++ /dev/null @@ -1,89 +0,0 @@ -FROM arm32v7/debian:bullseye-slim - -LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ - org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ - org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ - org.opencontainers.image.authors="André Germann " \ - org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ - org.opencontainers.image.version="${VERSION}" \ - org.opencontainers.image.created="${DATI}" - -ENV DEBIAN_FRONTEND noninteractive - -# Install prerequisites (including node) and generating locales -RUN apt-get update && apt-get install -y \ - curl \ - gosu \ - jq \ - locales \ - procps \ - sudo \ - udev \ - wget \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ - # Install node - && curl -sL https://deb.nodesource.com/setup_12.x | bash \ - && apt-get update && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* - -# Create scripts directorys and copy scripts -RUN mkdir -p /opt/scripts/ \ - && mkdir -p /opt/userscripts/ \ - && chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ -WORKDIR /opt/scripts/ -COPY scripts/* ./ -RUN chmod +x *.sh -WORKDIR /opt/userscripts/ -COPY userscripts/* ./ -RUN chmod +x *.sh - -# Install ioBroker -WORKDIR / -RUN apt-get update \ - && curl -sL https://iobroker.net/install.sh | bash - \ - && mkdir -p /opt/scripts/.docker_config/ \ - && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ - && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ - && echo $(hostname) > /opt/.firstrun \ - # Deleting UUID from build - && iobroker unsetup -y \ - # Backup initial ioBroker and userscript folder - && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ - && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - && rm -rf /var/lib/apt/lists/* - -# Setting up iobroker-user (shell, home dir and rights) -RUN chsh -s /bin/bash iobroker \ - && usermod --home /opt/iobroker iobroker \ - && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker \ - && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu - -# Setting up default ENVs -ENV DEBIAN_FRONTEND="teletype" \ - LANG="de_DE.UTF-8" \ - LANGUAGE="de_DE:de" \ - LC_ALL="de_DE.UTF-8" \ - SETGID=1000 \ - SETUID=1000 \ - TZ="Europe/Berlin" - -# Expose default admin ui port -EXPOSE 8081 - -# Change work dir -WORKDIR /opt/iobroker/ - -# Healthcheck -HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ - CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] - -# Run startup-script -ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/debian/node12/Dockerfile_arm64v8 b/debian/node12/Dockerfile_arm64v8 deleted file mode 100644 index fa18f2b..0000000 --- a/debian/node12/Dockerfile_arm64v8 +++ /dev/null @@ -1,89 +0,0 @@ -FROM arm64v8/debian:bullseye-slim - -LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ - org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ - org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ - org.opencontainers.image.authors="André Germann " \ - org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ - org.opencontainers.image.version="${VERSION}" \ - org.opencontainers.image.created="${DATI}" - -ENV DEBIAN_FRONTEND noninteractive - -# Install prerequisites (including node) and generating locales -RUN apt-get update && apt-get install -y \ - curl \ - gosu \ - jq \ - locales \ - procps \ - sudo \ - udev \ - wget \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ - # Install node - && curl -sL https://deb.nodesource.com/setup_12.x | bash \ - && apt-get update && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* - -# Create scripts directorys and copy scripts -RUN mkdir -p /opt/scripts/ \ - && mkdir -p /opt/userscripts/ \ - && chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ -WORKDIR /opt/scripts/ -COPY scripts/* ./ -RUN chmod +x *.sh -WORKDIR /opt/userscripts/ -COPY userscripts/* ./ -RUN chmod +x *.sh - -# Install ioBroker -WORKDIR / -RUN apt-get update \ - && curl -sL https://iobroker.net/install.sh | bash - \ - && mkdir -p /opt/scripts/.docker_config/ \ - && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ - && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ - && echo $(hostname) > /opt/.firstrun \ - # Deleting UUID from build - && iobroker unsetup -y \ - # Backup initial ioBroker and userscript folder - && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ - && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - && rm -rf /var/lib/apt/lists/* - -# Setting up iobroker-user (shell, home dir and rights) -RUN chsh -s /bin/bash iobroker \ - && usermod --home /opt/iobroker iobroker \ - && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker \ - && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu - -# Setting up default ENVs -ENV DEBIAN_FRONTEND="teletype" \ - LANG="de_DE.UTF-8" \ - LANGUAGE="de_DE:de" \ - LC_ALL="de_DE.UTF-8" \ - SETGID=1000 \ - SETUID=1000 \ - TZ="Europe/Berlin" - -# Expose default admin ui port -EXPOSE 8081 - -# Change work dir -WORKDIR /opt/iobroker/ - -# Healthcheck -HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ - CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] - -# Run startup-script -ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/debian/node14/Dockerfile b/debian/node14/Dockerfile index f565b39..e528dd7 100644 --- a/debian/node14/Dockerfile +++ b/debian/node14/Dockerfile @@ -14,39 +14,41 @@ ENV DEBIAN_FRONTEND noninteractive # Install prerequisites (including node) and generating locales RUN apt-get update && apt-get install -y \ + apt-utils \ + cifs-utils \ curl \ gosu \ jq \ locales \ + nfs-common \ procps \ + python3 \ + python3-dev \ sudo \ + tar \ + tzdata \ udev \ wget \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ # Install node && curl -sL https://deb.nodesource.com/setup_14.x | bash \ && apt-get update && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* + # Install node-gyp + && npm install -g node-gyp \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen -# Create scripts directorys and copy scripts -RUN mkdir -p /opt/scripts/ \ - && mkdir -p /opt/userscripts/ \ - && chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ -WORKDIR /opt/scripts/ -COPY scripts/* ./ -RUN chmod +x *.sh -WORKDIR /opt/userscripts/ -COPY userscripts/* ./ -RUN chmod +x *.sh +# Create directorys and copy scripts +COPY scripts /opt/scripts +COPY userscripts /opt/userscripts +RUN chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ \ + && chmod +x /opt/scripts/*.sh \ + && chmod +x /opt/userscripts/*.sh # Install ioBroker -WORKDIR / -RUN apt-get update \ - && curl -sL https://iobroker.net/install.sh | bash - \ +RUN curl -sL https://iobroker.net/install.sh | bash - \ && mkdir -p /opt/scripts/.docker_config/ \ && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ @@ -56,15 +58,20 @@ RUN apt-get update \ # Backup initial ioBroker and userscript folder && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - && rm -rf /var/lib/apt/lists/* - -# Setting up iobroker-user (shell, home dir and rights) -RUN chsh -s /bin/bash iobroker \ + # Setting up iobroker-user (shell, home dir and rights) + && chsh -s /bin/bash iobroker \ && usermod --home /opt/iobroker iobroker \ && usermod -u 1000 iobroker \ && groupmod -g 1000 iobroker \ && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu + && chmod +s /usr/sbin/gosu \ + # Clean up installation cache + && apt-get autoclean -y \ + && apt-get autoremove \ + && apt-get clean \ + && rm -rf /tmp/* /var/tmp/* \ + && rm -rf /root/.cache/* /root/.npm/* \ + && rm -rf /var/lib/apt/lists/* # Setting up default ENVs ENV DEBIAN_FRONTEND="teletype" \ diff --git a/debian/node14/Dockerfile_arm32v7 b/debian/node14/Dockerfile_arm32v7 deleted file mode 100644 index 36870d8..0000000 --- a/debian/node14/Dockerfile_arm32v7 +++ /dev/null @@ -1,89 +0,0 @@ -FROM arm32v7/debian:bullseye-slim - -LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ - org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ - org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ - org.opencontainers.image.authors="André Germann " \ - org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ - org.opencontainers.image.version="${VERSION}" \ - org.opencontainers.image.created="${DATI}" - -ENV DEBIAN_FRONTEND noninteractive - -# Install prerequisites (including node) and generating locales -RUN apt-get update && apt-get install -y \ - curl \ - gosu \ - jq \ - locales \ - procps \ - sudo \ - udev \ - wget \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ - # Install node - && curl -sL https://deb.nodesource.com/setup_14.x | bash \ - && apt-get update && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* - -# Create scripts directorys and copy scripts -RUN mkdir -p /opt/scripts/ \ - && mkdir -p /opt/userscripts/ \ - && chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ -WORKDIR /opt/scripts/ -COPY scripts/* ./ -RUN chmod +x *.sh -WORKDIR /opt/userscripts/ -COPY userscripts/* ./ -RUN chmod +x *.sh - -# Install ioBroker -WORKDIR / -RUN apt-get update \ - && curl -sL https://iobroker.net/install.sh | bash - \ - && mkdir -p /opt/scripts/.docker_config/ \ - && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ - && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ - && echo $(hostname) > /opt/.firstrun \ - # Deleting UUID from build - && iobroker unsetup -y \ - # Backup initial ioBroker and userscript folder - && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ - && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - && rm -rf /var/lib/apt/lists/* - -# Setting up iobroker-user (shell, home dir and rights) -RUN chsh -s /bin/bash iobroker \ - && usermod --home /opt/iobroker iobroker \ - && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker \ - && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu - -# Setting up default ENVs -ENV DEBIAN_FRONTEND="teletype" \ - LANG="de_DE.UTF-8" \ - LANGUAGE="de_DE:de" \ - LC_ALL="de_DE.UTF-8" \ - SETGID=1000 \ - SETUID=1000 \ - TZ="Europe/Berlin" - -# Expose default admin ui port -EXPOSE 8081 - -# Change work dir -WORKDIR /opt/iobroker/ - -# Healthcheck -HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ - CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] - -# Run startup-script -ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/debian/node14/Dockerfile_arm64v8 b/debian/node14/Dockerfile_arm64v8 deleted file mode 100644 index 0222472..0000000 --- a/debian/node14/Dockerfile_arm64v8 +++ /dev/null @@ -1,89 +0,0 @@ -FROM arm64v8/debian:bullseye-slim - -LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ - org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ - org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ - org.opencontainers.image.authors="André Germann " \ - org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ - org.opencontainers.image.version="${VERSION}" \ - org.opencontainers.image.created="${DATI}" - -ENV DEBIAN_FRONTEND noninteractive - -# Install prerequisites (including node) and generating locales -RUN apt-get update && apt-get install -y \ - curl \ - gosu \ - jq \ - locales \ - procps \ - sudo \ - udev \ - wget \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen \ - # Install node - && curl -sL https://deb.nodesource.com/setup_14.x | bash \ - && apt-get update && apt-get install -y nodejs \ - && rm -rf /var/lib/apt/lists/* - -# Create scripts directorys and copy scripts -RUN mkdir -p /opt/scripts/ \ - && mkdir -p /opt/userscripts/ \ - && chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ -WORKDIR /opt/scripts/ -COPY scripts/* ./ -RUN chmod +x *.sh -WORKDIR /opt/userscripts/ -COPY userscripts/* ./ -RUN chmod +x *.sh - -# Install ioBroker -WORKDIR / -RUN apt-get update \ - && curl -sL https://iobroker.net/install.sh | bash - \ - && mkdir -p /opt/scripts/.docker_config/ \ - && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ - && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ - && echo $(hostname) > /opt/.firstrun \ - # Deleting UUID from build - && iobroker unsetup -y \ - # Backup initial ioBroker and userscript folder - && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ - && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - && rm -rf /var/lib/apt/lists/* - -# Setting up iobroker-user (shell, home dir and rights) -RUN chsh -s /bin/bash iobroker \ - && usermod --home /opt/iobroker iobroker \ - && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker \ - && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu - -# Setting up default ENVs -ENV DEBIAN_FRONTEND="teletype" \ - LANG="de_DE.UTF-8" \ - LANGUAGE="de_DE:de" \ - LC_ALL="de_DE.UTF-8" \ - SETGID=1000 \ - SETUID=1000 \ - TZ="Europe/Berlin" - -# Expose default admin ui port -EXPOSE 8081 - -# Change work dir -WORKDIR /opt/iobroker/ - -# Healthcheck -HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ - CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] - -# Run startup-script -ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] From 32ee0cf9928b15a6509f59ecf7673b1cccf24ebc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Oct 2021 22:25:21 +0000 Subject: [PATCH 05/18] Bump docker/build-push-action from 2.6.1 to 2.7.0 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.6.1 to 2.7.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v2.6.1...v2.7.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/build-debian-image-beta-node14.yml | 6 +++--- .github/workflows/build-debian-image-beta.yml | 6 +++--- .github/workflows/build-debian-image-dev-node14.yml | 6 +++--- .github/workflows/build-debian-image-dev.yml | 6 +++--- .github/workflows/build-debian-image-main.yml | 6 +++--- .github/workflows/build-debian-image-main_iob.yml | 6 +++--- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-debian-image-beta-node14.yml b/.github/workflows/build-debian-image-beta-node14.yml index f0b1e8b..cad6ce6 100644 --- a/.github/workflows/build-debian-image-beta-node14.yml +++ b/.github/workflows/build-debian-image-beta-node14.yml @@ -66,7 +66,7 @@ jobs: password: ${{ secrets.PACKAGES_PASS }} - name: Build Docker image (node14-amd64) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node14/Dockerfile @@ -77,7 +77,7 @@ jobs: ghcr.io/buanet/iobroker:${{ env.version }}-node14-amd64 - name: Build Docker image (node14-arm32v7) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node14/Dockerfile @@ -88,7 +88,7 @@ jobs: ghcr.io/buanet/iobroker:${{ env.version }}-node14-arm32v7 - name: Build Docker image (node14-arm64v8) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node14/Dockerfile diff --git a/.github/workflows/build-debian-image-beta.yml b/.github/workflows/build-debian-image-beta.yml index b4c583c..dadf946 100644 --- a/.github/workflows/build-debian-image-beta.yml +++ b/.github/workflows/build-debian-image-beta.yml @@ -66,7 +66,7 @@ jobs: password: ${{ secrets.PACKAGES_PASS }} - name: Build Docker image (amd64) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -77,7 +77,7 @@ jobs: ghcr.io/buanet/iobroker:${{ env.version }}-amd64 - name: Build Docker image (arm32v7) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -88,7 +88,7 @@ jobs: ghcr.io/buanet/iobroker:${{ env.version }}-arm32v7 - name: Build Docker image (arm64v8) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node14.yml index 0d6c0ac..440b3dd 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node14.yml @@ -62,7 +62,7 @@ jobs: password: ${{ secrets.PACKAGES_PASS }} - name: Build Docker image (node14-amd64) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node14/Dockerfile @@ -73,7 +73,7 @@ jobs: ghcr.io/buanet/iobroker:dev-node14-amd64 - name: Build Docker image (node14-arm32v7) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node14/Dockerfile @@ -84,7 +84,7 @@ jobs: ghcr.io/buanet/iobroker:dev-node14-arm32v7 - name: Build Docker image (node14-arm64v8) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node14/Dockerfile diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 929bbaa..bba0cdb 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -62,7 +62,7 @@ jobs: password: ${{ secrets.PACKAGES_PASS }} - name: Build Docker image (amd64) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -73,7 +73,7 @@ jobs: ghcr.io/buanet/iobroker:dev-amd64 - name: Build Docker image (arm32v7) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -84,7 +84,7 @@ jobs: ghcr.io/buanet/iobroker:dev-arm32v7 - name: Build Docker image (arm64v8) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile diff --git a/.github/workflows/build-debian-image-main.yml b/.github/workflows/build-debian-image-main.yml index 783059a..474d0bc 100644 --- a/.github/workflows/build-debian-image-main.yml +++ b/.github/workflows/build-debian-image-main.yml @@ -64,7 +64,7 @@ jobs: password: ${{ secrets.PACKAGES_PASS }} - name: Build Docker image (amd64) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -75,7 +75,7 @@ jobs: ghcr.io/buanet/iobroker:${{ env.version }}-amd64 - name: Build Docker image (arm32v7) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -86,7 +86,7 @@ jobs: ghcr.io/buanet/iobroker:${{ env.version }}-arm32v7 - name: Build Docker image (arm64v8) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile diff --git a/.github/workflows/build-debian-image-main_iob.yml b/.github/workflows/build-debian-image-main_iob.yml index ed4edba..998a4e2 100644 --- a/.github/workflows/build-debian-image-main_iob.yml +++ b/.github/workflows/build-debian-image-main_iob.yml @@ -57,7 +57,7 @@ jobs: password: ${{ secrets.DOCKER_PASS_IOB }} - name: Build Docker image (amd64) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -67,7 +67,7 @@ jobs: iobroker/iobroker:${{ env.version }}-amd64, - name: Build Docker image (arm32v7) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile @@ -77,7 +77,7 @@ jobs: iobroker/iobroker:${{ env.version }}-arm32v7, - name: Build Docker image (arm64v8) - uses: docker/build-push-action@v2.6.1 + uses: docker/build-push-action@v2.7.0 with: context: ./debian file: ./debian/node12/Dockerfile From 454a3b49222a6633d676b485604d27bd69d19632 Mon Sep 17 00:00:00 2001 From: buanet Date: Sun, 3 Oct 2021 13:18:08 +0200 Subject: [PATCH 06/18] testing --- .VERSION | 2 +- CHANGELOG.md | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.VERSION b/.VERSION index 7c01dfe..986ec85 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v5.2.0-beta4 \ No newline at end of file +v5.3.0-beta \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 0112ef6..43595e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,15 @@ ## Changelog -### v5.2.0-beta4 (2021-09-10) -* adding iobroker user rights for "gosu" -* adding more labels in OCI standard format -* fixing workdir bug -* adding backitup compatibility +### v5.3.0-beta (2021-10-03) +* adding packages for backitup +* reorganizing Dockerfile + +### v5.2.0 (2021-09-30) +* v5.2.0-beta4 (2021-09-10) + * adding iobroker user rights for "gosu" + * adding more labels in OCI standard format + * fixing workdir bug + * adding backitup compatibility * v5.2.0-beta3 (2021-09-04) * reducing layers in dockerfile * making hostname check mandatory for startup From 09bc8c0a0f4a3261239529a529521a930c32bb0b Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 5 Oct 2021 23:53:24 +0200 Subject: [PATCH 07/18] testing --- CHANGELOG.md | 2 ++ debian/node12/Dockerfile | 1 + debian/node14/Dockerfile | 1 + debian/scripts/setup_packages.sh | 5 ++++- 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43595e5..faaeef8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ ## Changelog ### v5.3.0-beta (2021-10-03) +* adding check for PACKAGES (#201) +* adding packages for discovery * adding packages for backitup * reorganizing Dockerfile diff --git a/debian/node12/Dockerfile b/debian/node12/Dockerfile index 2b575d4..fe2edfd 100644 --- a/debian/node12/Dockerfile +++ b/debian/node12/Dockerfile @@ -18,6 +18,7 @@ RUN apt-get update && apt-get install -y \ cifs-utils \ curl \ gosu \ + iputils-ping \ jq \ locales \ nfs-common \ diff --git a/debian/node14/Dockerfile b/debian/node14/Dockerfile index e528dd7..694bfb0 100644 --- a/debian/node14/Dockerfile +++ b/debian/node14/Dockerfile @@ -18,6 +18,7 @@ RUN apt-get update && apt-get install -y \ cifs-utils \ curl \ gosu \ + iputils-ping \ jq \ locales \ nfs-common \ diff --git a/debian/scripts/setup_packages.sh b/debian/scripts/setup_packages.sh index d959a5b..2b02eff 100644 --- a/debian/scripts/setup_packages.sh +++ b/debian/scripts/setup_packages.sh @@ -5,7 +5,10 @@ then apt-get -qq update packages=$(cat /opt/scripts/.packages) for i in $packages; do - sudo apt-get -qq -y install $i + if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; + then + sudo apt-get -qq -y install $i + fi done elif [ $1 == "-update" ] then From 860759fb7470c371bba7b5f5f185d6b7cd72a524 Mon Sep 17 00:00:00 2001 From: buanet Date: Thu, 7 Oct 2021 14:35:55 +0200 Subject: [PATCH 08/18] testing --- .VERSION | 2 +- CHANGELOG.md | 4 ++-- debian/scripts/iobroker_startup.sh | 4 ++-- debian/scripts/setup_packages.sh | 14 ++++++++++++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/.VERSION b/.VERSION index 986ec85..b13f2ca 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v5.3.0-beta \ No newline at end of file +v5.3.0-beta1 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index faaeef8..dbe0b8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## Changelog -### v5.3.0-beta (2021-10-03) -* adding check for PACKAGES (#201) +### v5.3.0-beta1 (2021-10-07) +* adding check for PACKAGES on startup (#201) * adding packages for discovery * adding packages for backitup * reorganizing Dockerfile diff --git a/debian/scripts/iobroker_startup.sh b/debian/scripts/iobroker_startup.sh index 643eeb8..5a7fb41 100644 --- a/debian/scripts/iobroker_startup.sh +++ b/debian/scripts/iobroker_startup.sh @@ -92,8 +92,8 @@ then if [ "$packages" != "" ] then echo "Installing additional packages is set by ENV." - echo "The following packages will be installed:" $packages"..." - echo $packages > /opt/scripts/.packages + echo "Checking the following Packages:" $packages"..." + echo $packages > /opt/scripts/.docker_config/.packages bash /opt/scripts/setup_packages.sh -install echo "Done." echo ' ' diff --git a/debian/scripts/setup_packages.sh b/debian/scripts/setup_packages.sh index 2b02eff..e547cc9 100644 --- a/debian/scripts/setup_packages.sh +++ b/debian/scripts/setup_packages.sh @@ -3,11 +3,15 @@ if [ $1 == "-install" ] then apt-get -qq update - packages=$(cat /opt/scripts/.packages) + packages=$(cat /opt/scripts/.docker_config/.packages) for i in $packages; do if [ $(dpkg-query -W -f='${Status}' $i 2>/dev/null | grep -c "ok installed") -eq 0 ]; then + echo "$i is not installed. Installing..." sudo apt-get -qq -y install $i + echo "Done." + else + echo "$i is already installed." fi done elif [ $1 == "-update" ] @@ -19,7 +23,13 @@ else exit 1 fi +# Cleanup +apt-get autoclean -y +apt-get autoremove +apt-get clean +rm -rf /tmp/* /var/tmp/* +rm -rf /root/.cache/* rm -rf /var/lib/apt/lists/* -rm -f /opt/scripts/.packages +rm -f /opt/scripts/.docker_config/.packages exit 0 From 27f3142205925c9e5f2a19960134e1753a7c741a Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 19 Oct 2021 23:09:16 +0200 Subject: [PATCH 09/18] doku --- src/README_docker_hub_buanet.md | 19 ++++++++++--------- src/README_docker_hub_iobroker.md | 17 +++++++++-------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/README_docker_hub_buanet.md b/src/README_docker_hub_buanet.md index f62f20e..9db87a8 100644 --- a/src/README_docker_hub_buanet.md +++ b/src/README_docker_hub_buanet.md @@ -24,13 +24,14 @@ # Supported tags -* `v5.2.0`, `v5.2.0-amd64`, `v5.2.0-arm32v7`, `v5.2.0-arm64v8`, `latest-v5`, `latest` -* `v5.2.0-node14`, `v5.2.0-node14-amd64`, `v5.2.0-node14-arm32v7`, `v5.2.0-node14-arm64v8`, `latest-v5-node14`, `latest-node14` -* `v5.1.0`, `v5.2.0-amd64`, `v5.2.0-armv7hf`, `v5.2.0-aarch64` +* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) +* [`v5.2.0-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-v5-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile) +* [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) +* [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile) # What is ioBroker? -IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome componets from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.
+IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.
For further details please check out [iobroker.net](https://www.iobroker.net). @@ -41,7 +42,7 @@ For further details please check out [iobroker.net](https://www.iobroker.net). For taking a first look at iobroker on docker it would be enough to simply run the following basic docker run command: ``` -docker run -p 8081:8081 --name iobroker -h iobroker iobroker/iobroker +docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker ``` ## Running with docker-compose @@ -54,7 +55,7 @@ version: '2' services: iobroker: container_name: iobroker - image: iobroker/iobroker + image: buanet/iobroker hostname: iobroker restart: always ports: @@ -100,17 +101,17 @@ You could use environment variables to auto configure your ioBroker container on * `LANG` (optional, default: de_DE.UTF‑8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8 * `LANGUAGE` (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en * `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8 -* `PACKAGES` (optional) Installs additional linux packages to your container, packages should be seperated by whitespace like this: "package1 package2 package3". +* `PACKAGES` (optional) Installs additional linux packages to your container, packages should be separated by whitespace like this: "package1 package2 package3". * `SETGID` (optional, 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` (optional, 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 -* `TZ` (optional, default: Europe/Berlin) Specifys the timeszone +* `TZ` (optional, default: Europe/Berlin) Specifies the time zone * `USBDEVICES` (optional) Sets relevant permissions on mounted devices like "/dev/ttyACM0". For more than one device separate with ";". ## Notes about Docker networks The examples above are dealing with the Docker default bridge network. In general there are [some reasons](https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge) why it might be the better choice to use a user-defined bridge network. -Using a Docker bridge network works fine for taking a first look and with most of the ioBroker adapters (if you dont forget to redirect the ports your adapers use).
+Using a Docker bridge network works fine for taking a first look and with most of the ioBroker adapters (if you don't forget to redirect the ports your adapters use).
But some ioBroker adapters are using techniques like [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for automatic detection of IoT devices
In this case it may be useful to switch to [host](https://docs.docker.com/network/host/) or [MACVLAN](https://docs.docker.com/network/macvlan/) network. diff --git a/src/README_docker_hub_iobroker.md b/src/README_docker_hub_iobroker.md index 70b7b78..e2930a1 100644 --- a/src/README_docker_hub_iobroker.md +++ b/src/README_docker_hub_iobroker.md @@ -23,13 +23,14 @@ # Supported tags -* `v5.2.0`, `v5.2.0-amd64`, `v5.2.0-arm32v7`, `v5.2.0-arm64v8`, `latest-v5`, `latest` -* `v5.2.0-node14`, `v5.2.0-node14-amd64`, `v5.2.0-node14-arm32v7`, `v5.2.0-node14-arm64v8`, `latest-v5-node14`, `latest-node14` -* `v5.1.0`, `v5.2.0-amd64`, `v5.2.0-armv7hf`, `v5.2.0-aarch64` +* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) +* [`v5.2.0-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-v5-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile) +* [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) +* [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile) # What is ioBroker? -IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome componets from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.
+IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.
For further details please check out [iobroker.net](https://www.iobroker.net). @@ -92,24 +93,24 @@ You could use environment variables to auto configure your ioBroker container on ### Activate special features: * `AVAHI` (optional, default: false) Installs and activates avahi-daemon for supporting yahka-adapter, can be "true" or "false" -* `AVAHI` (optional, default: false) Installs and activates avahi-daemon for supporting yahka-adapter, can be "true" or "false" +* `ZWAVE` (optional, default: false) Installs openzwave to support zwave-adapter, can be "true" or "false" ### Configure environment: * `LANG` (optional, default: de_DE.UTF‑8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8 * `LANGUAGE` (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en * `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8 -* `PACKAGES` (optional) Installs additional linux packages to your container, packages should be seperated by whitespace like this: "package1 package2 package3". +* `PACKAGES` (optional) Installs additional linux packages to your container, packages should be separated by whitespace like this: "package1 package2 package3". * `SETGID` (optional, 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` (optional, 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 -* `TZ` (optional, default: Europe/Berlin) Specifys the timeszone +* `TZ` (optional, default: Europe/Berlin) Specifies the time zone * `USBDEVICES` (optional) Sets relevant permissions on mounted devices like "/dev/ttyACM0". For more than one device separate with ";". ## Notes about Docker networks The examples above are dealing with the Docker default bridge network. In general there are [some reasons](https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge) why it might be the better choice to use a user-defined bridge network. -Using a Docker bridge network works fine for taking a first look and with most of the ioBroker adapters (if you dont forget to redirect the ports your adapers use).
+Using a Docker bridge network works fine for taking a first look and with most of the ioBroker adapters (if you don't forget to redirect the ports your adapters use).
But some ioBroker adapters are using techniques like [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for automatic detection of IoT devices
In this case it may be useful to switch to [host](https://docs.docker.com/network/host/) or [MACVLAN](https://docs.docker.com/network/macvlan/) network. From ed7160f9feae456859141d69fd50a4e9d053c56a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Nov 2021 09:19:13 +0000 Subject: [PATCH 10/18] Bump actions/checkout from 2.3.4 to 2.4.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.4.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.3.4...v2.4.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/build-debian-image-beta-node14.yml | 2 +- .github/workflows/build-debian-image-beta.yml | 2 +- .github/workflows/build-debian-image-dev-node14.yml | 2 +- .github/workflows/build-debian-image-dev.yml | 2 +- .github/workflows/build-debian-image-main.yml | 2 +- .github/workflows/build-debian-image-main_iob.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-debian-image-beta-node14.yml b/.github/workflows/build-debian-image-beta-node14.yml index 08e80e2..2301672 100644 --- a/.github/workflows/build-debian-image-beta-node14.yml +++ b/.github/workflows/build-debian-image-beta-node14.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo (beta) - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2.4.0 with: repository: 'buanet/ioBroker.docker' ref: 'beta' diff --git a/.github/workflows/build-debian-image-beta.yml b/.github/workflows/build-debian-image-beta.yml index 1a20b48..239cb6b 100644 --- a/.github/workflows/build-debian-image-beta.yml +++ b/.github/workflows/build-debian-image-beta.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo (beta) - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2.4.0 with: repository: 'buanet/ioBroker.docker' ref: 'beta' diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node14.yml index cb3c58a..d116c16 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node14.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo (dev) - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2.4.0 with: repository: 'buanet/ioBroker.docker' ref: 'dev' diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 2f6411c..90a7de9 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo (dev) - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2.4.0 with: repository: 'buanet/ioBroker.docker' ref: 'dev' diff --git a/.github/workflows/build-debian-image-main.yml b/.github/workflows/build-debian-image-main.yml index 0290755..bcf9852 100644 --- a/.github/workflows/build-debian-image-main.yml +++ b/.github/workflows/build-debian-image-main.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo (main) - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2.4.0 with: repository: 'buanet/ioBroker.docker' ref: 'main' diff --git a/.github/workflows/build-debian-image-main_iob.yml b/.github/workflows/build-debian-image-main_iob.yml index 1b35470..9cfcc0d 100644 --- a/.github/workflows/build-debian-image-main_iob.yml +++ b/.github/workflows/build-debian-image-main_iob.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repo (main) - uses: actions/checkout@v2.3.4 + uses: actions/checkout@v2.4.0 with: repository: 'buanet/ioBroker.docker' ref: 'main' From 08cb2d6094f333e6bf157b6165e0eaa7a20002fe Mon Sep 17 00:00:00 2001 From: buanet Date: Mon, 22 Nov 2021 12:44:30 +0100 Subject: [PATCH 11/18] preparing node version switch --- .VERSION | 2 +- ...yml => build-debian-image-beta-node16.yml} | 48 ++++----- .github/workflows/build-debian-image-beta.yml | 10 +- ....yml => build-debian-image-dev-node16.yml} | 40 ++++---- .github/workflows/build-debian-image-dev.yml | 10 +- .github/workflows/build-debian-image-main.yml | 10 +- .../workflows/build-debian-image-main_iob.yml | 10 +- CHANGELOG.md | 13 ++- debian/node16/Dockerfile | 97 +++++++++++++++++++ src/README_docker_hub_buanet.md | 1 - src/README_docker_hub_iobroker.md | 1 - 11 files changed, 170 insertions(+), 72 deletions(-) rename .github/workflows/{build-debian-image-beta-node14.yml => build-debian-image-beta-node16.yml} (72%) rename .github/workflows/{build-debian-image-dev-node14.yml => build-debian-image-dev-node16.yml} (77%) create mode 100644 debian/node16/Dockerfile diff --git a/.VERSION b/.VERSION index b13f2ca..274570d 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v5.3.0-beta1 \ No newline at end of file +v6.0.0-beta \ No newline at end of file diff --git a/.github/workflows/build-debian-image-beta-node14.yml b/.github/workflows/build-debian-image-beta-node16.yml similarity index 72% rename from .github/workflows/build-debian-image-beta-node14.yml rename to .github/workflows/build-debian-image-beta-node16.yml index 2301672..6936c86 100644 --- a/.github/workflows/build-debian-image-beta-node14.yml +++ b/.github/workflows/build-debian-image-beta-node16.yml @@ -1,5 +1,5 @@ # Github action to build Docker image from beta branch (tag: beta) -name: Build debian based image (beta-node14) +name: Build debian based image (beta-node16) on: pull_request: @@ -12,7 +12,7 @@ on: workflow_dispatch: jobs: - bulid-beta-node14-image: + bulid-beta-node16-image: runs-on: ubuntu-latest steps: - name: Checkout repo (beta) @@ -37,8 +37,8 @@ jobs: sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh # amd64 - sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp - mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile + sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp + mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile - name: Set up manifest tool run: | @@ -65,49 +65,49 @@ jobs: username: ${{ secrets.PACKAGES_USER }} password: ${{ secrets.PACKAGES_PASS }} - - name: Build Docker image (node14-amd64) + - name: Build Docker image (node16-amd64) uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node16/Dockerfile push: true platforms: linux/amd64 tags: | - buanet/iobroker:${{ env.version }}-node14-amd64, - ghcr.io/buanet/iobroker:${{ env.version }}-node14-amd64 + buanet/iobroker:${{ env.version }}-node16-amd64, + ghcr.io/buanet/iobroker:${{ env.version }}-node16-amd64 - - name: Build Docker image (node14-arm32v7) + - name: Build Docker image (node16-arm32v7) uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node16/Dockerfile push: true platforms: linux/arm/v7 tags: | - buanet/iobroker:${{ env.version }}-node14-arm32v7, - ghcr.io/buanet/iobroker:${{ env.version }}-node14-arm32v7 + buanet/iobroker:${{ env.version }}-node16-arm32v7, + ghcr.io/buanet/iobroker:${{ env.version }}-node16-arm32v7 - - name: Build Docker image (node14-arm64v8) + - name: Build Docker image (node16-arm64v8) uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node16/Dockerfile push: true platforms: linux/arm64/v8 tags: | - buanet/iobroker:${{ env.version }}-node14-arm64v8, - ghcr.io/buanet/iobroker:${{ env.version }}-node14-arm64v8 + buanet/iobroker:${{ env.version }}-node16-arm64v8, + ghcr.io/buanet/iobroker:${{ env.version }}-node16-arm64v8 - name: Create and push manifests run: | - sed -e "s/\${VERSION}/${{ env.version }}-node14/g" -e "s/\${DOCKERTAG}/beta-node14/g" ./manifest.yml > manifest_beta-node14.yaml - ./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_beta-node14.yaml - sed -e "s/\${VERSION}/${{ env.version }}-node14/g" -e "s/\${DOCKERTAG}/beta-node14/g" ./manifest_ghcr.yml > manifest_ghcr_beta-node14.yaml - ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_beta-node14.yaml - sed -e "s/\${VERSION}/${{ env.version }}-node14/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node14/g" ./manifest.yml > manifest_version-node14.yaml - ./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_version-node14.yaml - sed -e "s/\${VERSION}/${{ env.version }}-node14/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node14/g" ./manifest_ghcr.yml > manifest_ghcr_version-node14.yaml - ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version-node14.yaml + sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/beta-node16/g" ./manifest.yml > manifest_beta-node16.yaml + ./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_beta-node16.yaml + sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/beta-node16/g" ./manifest_ghcr.yml > manifest_ghcr_beta-node16.yaml + ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_beta-node16.yaml + sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node16/g" ./manifest.yml > manifest_version-node16.yaml + ./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_version-node16.yaml + sed -e "s/\${VERSION}/${{ env.version }}-node16/g" -e "s/\${DOCKERTAG}/${{ env.version }}-node16/g" ./manifest_ghcr.yml > manifest_ghcr_version-node16.yaml + ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_version-node16.yaml - name: Delete untagged images from GitHub packages uses: actions/github-script@v5 diff --git a/.github/workflows/build-debian-image-beta.yml b/.github/workflows/build-debian-image-beta.yml index 239cb6b..f172eba 100644 --- a/.github/workflows/build-debian-image-beta.yml +++ b/.github/workflows/build-debian-image-beta.yml @@ -37,8 +37,8 @@ jobs: sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh # amd64 - sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node12/Dockerfile > ./debian/node12/Dockerfile.tmp - mv -f ./debian/node12/Dockerfile.tmp ./debian/node12/Dockerfile + sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp + mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile - name: Set up manifest tool run: | @@ -69,7 +69,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/amd64 tags: | @@ -80,7 +80,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm/v7 tags: | @@ -91,7 +91,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm64/v8 tags: | diff --git a/.github/workflows/build-debian-image-dev-node14.yml b/.github/workflows/build-debian-image-dev-node16.yml similarity index 77% rename from .github/workflows/build-debian-image-dev-node14.yml rename to .github/workflows/build-debian-image-dev-node16.yml index d116c16..eed6df8 100644 --- a/.github/workflows/build-debian-image-dev-node14.yml +++ b/.github/workflows/build-debian-image-dev-node16.yml @@ -1,5 +1,5 @@ # Github action to build Docker image from dev branch (tag: dev) -name: Build debian based image (dev-node14) +name: Build debian based image (dev-node16) on: workflow_dispatch: @@ -8,7 +8,7 @@ on: - dev jobs: - bulid-dev-node14-image: + bulid-dev-node16-image: runs-on: ubuntu-latest steps: - name: Checkout repo (dev) @@ -33,8 +33,8 @@ jobs: sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh # amd64 - sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp - mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile + sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node16/Dockerfile > ./debian/node16/Dockerfile.tmp + mv -f ./debian/node16/Dockerfile.tmp ./debian/node16/Dockerfile - name: Set up manifest tool run: | @@ -61,45 +61,45 @@ jobs: username: ${{ secrets.PACKAGES_USER }} password: ${{ secrets.PACKAGES_PASS }} - - name: Build Docker image (node14-amd64) + - name: Build Docker image (node16-amd64) uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node16/Dockerfile push: true platforms: linux/amd64 tags: | - buanet/iobroker:dev-node14-amd64, - ghcr.io/buanet/iobroker:dev-node14-amd64 + buanet/iobroker:dev-node16-amd64, + ghcr.io/buanet/iobroker:dev-node16-amd64 - - name: Build Docker image (node14-arm32v7) + - name: Build Docker image (node16-arm32v7) uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node16/Dockerfile push: true platforms: linux/arm/v7 tags: | - buanet/iobroker:dev-node14-arm32v7, - ghcr.io/buanet/iobroker:dev-node14-arm32v7 + buanet/iobroker:dev-node16-arm32v7, + ghcr.io/buanet/iobroker:dev-node16-arm32v7 - - name: Build Docker image (node14-arm64v8) + - name: Build Docker image (node16-arm64v8) uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node14/Dockerfile + file: ./debian/node16/Dockerfile push: true platforms: linux/arm64/v8 tags: | - buanet/iobroker:dev-node14-arm64v8, - ghcr.io/buanet/iobroker:dev-node14-arm64v8 + buanet/iobroker:dev-node16-arm64v8, + ghcr.io/buanet/iobroker:dev-node16-arm64v8 - name: Create and push manifests run: | - sed -e "s/\${VERSION}/dev-node14/g" -e "s/\${DOCKERTAG}/dev-node14/g" ./manifest.yml > manifest_dev-node14.yaml - ./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_dev-node14.yaml - sed -e "s/\${VERSION}/dev-node14/g" -e "s/\${DOCKERTAG}/dev-node14/g" ./manifest_ghcr.yml > manifest_ghcr_dev-node14.yaml - ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev-node14.yaml + sed -e "s/\${VERSION}/dev-node16/g" -e "s/\${DOCKERTAG}/dev-node16/g" ./manifest.yml > manifest_dev-node16.yaml + ./manifest-tool --username ${{ secrets.DOCKER_USER }} --password ${{ secrets.DOCKER_PASS }} push from-spec manifest_dev-node16.yaml + sed -e "s/\${VERSION}/dev-node16/g" -e "s/\${DOCKERTAG}/dev-node16/g" ./manifest_ghcr.yml > manifest_ghcr_dev-node16.yaml + ./manifest-tool --username ${{ secrets.PACKAGES_USER }} --password ${{ secrets.PACKAGES_PASS }} push from-spec manifest_ghcr_dev-node16.yaml - name: Delete untagged images from GitHub packages uses: actions/github-script@v5 diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 90a7de9..dd1db9c 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -33,8 +33,8 @@ jobs: sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh # amd64 - sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node12/Dockerfile > ./debian/node12/Dockerfile.tmp - mv -f ./debian/node12/Dockerfile.tmp ./debian/node12/Dockerfile + sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp + mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile - name: Set up manifest tool run: | @@ -65,7 +65,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/amd64 tags: | @@ -76,7 +76,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm/v7 tags: | @@ -87,7 +87,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm64/v8 tags: | diff --git a/.github/workflows/build-debian-image-main.yml b/.github/workflows/build-debian-image-main.yml index bcf9852..6e4ba53 100644 --- a/.github/workflows/build-debian-image-main.yml +++ b/.github/workflows/build-debian-image-main.yml @@ -35,8 +35,8 @@ jobs: sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh # amd64 - sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node12/Dockerfile > ./debian/node12/Dockerfile.tmp - mv -f ./debian/node12/Dockerfile.tmp ./debian/node12/Dockerfile + sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp + mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile - name: Set up manifest tool run: | @@ -67,7 +67,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/amd64 tags: | @@ -78,7 +78,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm/v7 tags: | @@ -89,7 +89,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm64/v8 tags: | diff --git a/.github/workflows/build-debian-image-main_iob.yml b/.github/workflows/build-debian-image-main_iob.yml index 9cfcc0d..496d835 100644 --- a/.github/workflows/build-debian-image-main_iob.yml +++ b/.github/workflows/build-debian-image-main_iob.yml @@ -35,8 +35,8 @@ jobs: sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh # amd64 - sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node12/Dockerfile > ./debian/node12/Dockerfile.tmp - mv -f ./debian/node12/Dockerfile.tmp ./debian/node12/Dockerfile + sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node14/Dockerfile > ./debian/node14/Dockerfile.tmp + mv -f ./debian/node14/Dockerfile.tmp ./debian/node14/Dockerfile - name: Set up manifest tool run: | @@ -60,7 +60,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/amd64 tags: | @@ -70,7 +70,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm/v7 tags: | @@ -80,7 +80,7 @@ jobs: uses: docker/build-push-action@v2.7.0 with: context: ./debian - file: ./debian/node12/Dockerfile + file: ./debian/node14/Dockerfile push: true platforms: linux/arm64/v8 tags: | diff --git a/CHANGELOG.md b/CHANGELOG.md index dbe0b8f..3bdf299 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,13 @@ ## Changelog -### v5.3.0-beta1 (2021-10-07) -* adding check for PACKAGES on startup (#201) -* adding packages for discovery -* adding packages for backitup -* reorganizing Dockerfile +### v6.0.0-beta1 (2021-10-07) +* upgrading node version to recommended v14 +* adding beta-node16 tag for betatest +* v5.3.0-beta1 (2021-10-07) + * adding check for PACKAGES on startup (#201) + * adding packages for discovery + * adding packages for backitup + * reorganizing Dockerfile ### v5.2.0 (2021-09-30) * v5.2.0-beta4 (2021-09-10) diff --git a/debian/node16/Dockerfile b/debian/node16/Dockerfile new file mode 100644 index 0000000..94505e1 --- /dev/null +++ b/debian/node16/Dockerfile @@ -0,0 +1,97 @@ +FROM debian:bullseye-slim + +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ + org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ + org.opencontainers.image.version="${VERSION}" \ + org.opencontainers.image.created="${DATI}" + +ENV DEBIAN_FRONTEND noninteractive + +# Install prerequisites (including node) and generating locales +RUN apt-get update && apt-get install -y \ + apt-utils \ + cifs-utils \ + curl \ + gosu \ + iputils-ping \ + jq \ + locales \ + nfs-common \ + procps \ + python3 \ + python3-dev \ + sudo \ + tar \ + tzdata \ + udev \ + wget \ + # Install node + && curl -sL https://deb.nodesource.com/setup_16.x | bash \ + && apt-get update && apt-get install -y nodejs \ + # Install node-gyp + && npm install -g node-gyp \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen + +# Create directorys and copy scripts +COPY scripts /opt/scripts +COPY userscripts /opt/userscripts +RUN chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ \ + && chmod +x /opt/scripts/*.sh \ + && chmod +x /opt/userscripts/*.sh + +# Install ioBroker +RUN curl -sL https://iobroker.net/install.sh | bash - \ + && mkdir -p /opt/scripts/.docker_config/ \ + && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ + && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ + && echo $(hostname) > /opt/.firstrun \ + # Deleting UUID from build + && iobroker unsetup -y \ + # Backup initial ioBroker and userscript folder + && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ + && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ + # Setting up iobroker-user (shell, home dir and rights) + && chsh -s /bin/bash iobroker \ + && usermod --home /opt/iobroker iobroker \ + && usermod -u 1000 iobroker \ + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu \ + # Clean up installation cache + && apt-get autoclean -y \ + && apt-get autoremove \ + && apt-get clean \ + && rm -rf /tmp/* /var/tmp/* \ + && rm -rf /root/.cache/* /root/.npm/* \ + && rm -rf /var/lib/apt/lists/* + +# Setting up default ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + SETGID=1000 \ + SETUID=1000 \ + TZ="Europe/Berlin" + +# Expose default admin ui port +EXPOSE 8081 + +# Change work dir +WORKDIR /opt/iobroker/ + +# Healthcheck +HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ + CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] + +# Run startup-script +ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/src/README_docker_hub_buanet.md b/src/README_docker_hub_buanet.md index 9db87a8..7f86964 100644 --- a/src/README_docker_hub_buanet.md +++ b/src/README_docker_hub_buanet.md @@ -25,7 +25,6 @@ # Supported tags * [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) -* [`v5.2.0-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-v5-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile) * [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) * [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile) diff --git a/src/README_docker_hub_iobroker.md b/src/README_docker_hub_iobroker.md index e2930a1..626a7fc 100644 --- a/src/README_docker_hub_iobroker.md +++ b/src/README_docker_hub_iobroker.md @@ -24,7 +24,6 @@ # Supported tags * [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) -* [`v5.2.0-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`v5.2.0-node14-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-v5-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile), [`latest-node14`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node14/Dockerfile) * [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) * [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile) From 744a293100fa872959139e95d9a7fd2c4e224384 Mon Sep 17 00:00:00 2001 From: buanet Date: Tue, 23 Nov 2021 20:09:37 +0100 Subject: [PATCH 12/18] prepare beta --- LICENSE.md | 2 +- README.md | 2 +- debian/node12/Dockerfile | 97 ---------------------------------------- 3 files changed, 2 insertions(+), 99 deletions(-) delete mode 100644 debian/node12/Dockerfile diff --git a/LICENSE.md b/LICENSE.md index e1369e7..c1ade89 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017 André Germann +Copyright (c) 2017-2021 André Germann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 470ba31..3e936e4 100644 --- a/README.md +++ b/README.md @@ -205,7 +205,7 @@ Moved to [CHANGELOG.md](CHANGELOG.md). MIT License -Copyright (c) 2017-2021 [André Germann] +Copyright (c) 2017-2021 André Germann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/debian/node12/Dockerfile b/debian/node12/Dockerfile deleted file mode 100644 index fe2edfd..0000000 --- a/debian/node12/Dockerfile +++ /dev/null @@ -1,97 +0,0 @@ -FROM debian:bullseye-slim - -LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ - org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ - org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ - org.opencontainers.image.authors="André Germann " \ - org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ - org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ - org.opencontainers.image.version="${VERSION}" \ - org.opencontainers.image.created="${DATI}" - -ENV DEBIAN_FRONTEND noninteractive - -# Install prerequisites (including node) and generating locales -RUN apt-get update && apt-get install -y \ - apt-utils \ - cifs-utils \ - curl \ - gosu \ - iputils-ping \ - jq \ - locales \ - nfs-common \ - procps \ - python3 \ - python3-dev \ - sudo \ - tar \ - tzdata \ - udev \ - wget \ - # Install node - && curl -sL https://deb.nodesource.com/setup_12.x | bash \ - && apt-get update && apt-get install -y nodejs \ - # Install node-gyp - && npm install -g node-gyp \ - # Generating locales - && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ - && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ - && locale-gen - -# Create directorys and copy scripts -COPY scripts /opt/scripts -COPY userscripts /opt/userscripts -RUN chmod 777 /opt/scripts/ \ - && chmod 777 /opt/userscripts/ \ - && chmod +x /opt/scripts/*.sh \ - && chmod +x /opt/userscripts/*.sh - -# Install ioBroker -RUN curl -sL https://iobroker.net/install.sh | bash - \ - && mkdir -p /opt/scripts/.docker_config/ \ - && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ - && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ - && echo $(hostname) > /opt/.firstrun \ - # Deleting UUID from build - && iobroker unsetup -y \ - # Backup initial ioBroker and userscript folder - && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ - && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ - # Setting up iobroker-user (shell, home dir and rights) - && chsh -s /bin/bash iobroker \ - && usermod --home /opt/iobroker iobroker \ - && usermod -u 1000 iobroker \ - && groupmod -g 1000 iobroker \ - && chown root:iobroker /usr/sbin/gosu \ - && chmod +s /usr/sbin/gosu \ - # Clean up installation cache - && apt-get autoclean -y \ - && apt-get autoremove \ - && apt-get clean \ - && rm -rf /tmp/* /var/tmp/* \ - && rm -rf /root/.cache/* /root/.npm/* \ - && rm -rf /var/lib/apt/lists/* - -# Setting up default ENVs -ENV DEBIAN_FRONTEND="teletype" \ - LANG="de_DE.UTF-8" \ - LANGUAGE="de_DE:de" \ - LC_ALL="de_DE.UTF-8" \ - SETGID=1000 \ - SETUID=1000 \ - TZ="Europe/Berlin" - -# Expose default admin ui port -EXPOSE 8081 - -# Change work dir -WORKDIR /opt/iobroker/ - -# Healthcheck -HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ - CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] - -# Run startup-script -ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] From 6bc5c28649cd97b087c06b17d9fb465061c1ab10 Mon Sep 17 00:00:00 2001 From: buanet Date: Thu, 25 Nov 2021 20:49:26 +0100 Subject: [PATCH 13/18] testing --- debian/node12/Dockerfile | 97 +++++++++++++++++++++++++++++++++ src/README_docker_hub_buanet.md | 13 ++++- 2 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 debian/node12/Dockerfile diff --git a/debian/node12/Dockerfile b/debian/node12/Dockerfile new file mode 100644 index 0000000..fe2edfd --- /dev/null +++ b/debian/node12/Dockerfile @@ -0,0 +1,97 @@ +FROM debian:bullseye-slim + +LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \ + org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \ + org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \ + org.opencontainers.image.authors="André Germann " \ + org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \ + org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \ + org.opencontainers.image.version="${VERSION}" \ + org.opencontainers.image.created="${DATI}" + +ENV DEBIAN_FRONTEND noninteractive + +# Install prerequisites (including node) and generating locales +RUN apt-get update && apt-get install -y \ + apt-utils \ + cifs-utils \ + curl \ + gosu \ + iputils-ping \ + jq \ + locales \ + nfs-common \ + procps \ + python3 \ + python3-dev \ + sudo \ + tar \ + tzdata \ + udev \ + wget \ + # Install node + && curl -sL https://deb.nodesource.com/setup_12.x | bash \ + && apt-get update && apt-get install -y nodejs \ + # Install node-gyp + && npm install -g node-gyp \ + # Generating locales + && sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \ + && sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \ + && locale-gen + +# Create directorys and copy scripts +COPY scripts /opt/scripts +COPY userscripts /opt/userscripts +RUN chmod 777 /opt/scripts/ \ + && chmod 777 /opt/userscripts/ \ + && chmod +x /opt/scripts/*.sh \ + && chmod +x /opt/userscripts/*.sh + +# Install ioBroker +RUN curl -sL https://iobroker.net/install.sh | bash - \ + && mkdir -p /opt/scripts/.docker_config/ \ + && echo "starting" > /opt/scripts/.docker_config/.healthcheck \ + && echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \ + && echo $(hostname) > /opt/.firstrun \ + # Deleting UUID from build + && iobroker unsetup -y \ + # Backup initial ioBroker and userscript folder + && tar -cf /opt/initial_iobroker.tar /opt/iobroker \ + && tar -cf /opt/initial_userscripts.tar /opt/userscripts \ + # Setting up iobroker-user (shell, home dir and rights) + && chsh -s /bin/bash iobroker \ + && usermod --home /opt/iobroker iobroker \ + && usermod -u 1000 iobroker \ + && groupmod -g 1000 iobroker \ + && chown root:iobroker /usr/sbin/gosu \ + && chmod +s /usr/sbin/gosu \ + # Clean up installation cache + && apt-get autoclean -y \ + && apt-get autoremove \ + && apt-get clean \ + && rm -rf /tmp/* /var/tmp/* \ + && rm -rf /root/.cache/* /root/.npm/* \ + && rm -rf /var/lib/apt/lists/* + +# Setting up default ENVs +ENV DEBIAN_FRONTEND="teletype" \ + LANG="de_DE.UTF-8" \ + LANGUAGE="de_DE:de" \ + LC_ALL="de_DE.UTF-8" \ + SETGID=1000 \ + SETUID=1000 \ + TZ="Europe/Berlin" + +# Expose default admin ui port +EXPOSE 8081 + +# Change work dir +WORKDIR /opt/iobroker/ + +# Healthcheck +HEALTHCHECK --interval=15s --timeout=5s --retries=5 \ + CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"] + +# Run startup-script +ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"] diff --git a/src/README_docker_hub_buanet.md b/src/README_docker_hub_buanet.md index 7f86964..b44219d 100644 --- a/src/README_docker_hub_buanet.md +++ b/src/README_docker_hub_buanet.md @@ -10,7 +10,9 @@ [![License](https://img.shields.io/github/license/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md) [![Donate](https://img.shields.io/badge/donate-paypal-blue?style=flat)](https://paypal.me/buanet) -**Note:** New major versions (e.g. v4, v5, v6) of the image always come with a new major verson of node (preinstalled). To avoid issues when upgrading into a new major version the best practice recommendation is to migrate using backup and restore procedure. For more details please see "Best Practices" section on official [readme.md](https://github.com/buanet/ioBroker.docker#best-practices). +# Important Note + +New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see "Best Practices" section at the brand new [Official ioBroker Docker Image Docs](https://docs.buanet.de/iobroker-docker-image/docs/). # Quick reference @@ -20,11 +22,16 @@ * Supported architectures: amd64, arm32v7, arm64v8 * Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md) * Source code: [Github Repository](https://github.com/buanet/ioBroker.docker) -* All other questions should be answered here: [Github Repository Readme](https://github.com/buanet/ioBroker.docker#readme) or [iobroker.net](https://www.iobroker.net/) +* All other questions should be answered here: [Official ioBroker Docker Image Docs](https://docs.buanet.de/iobroker-docker-image/docs/) or [iobroker.net](https://www.iobroker.net/) # Supported tags -* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) +It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-vX` tag instead. + +### Node 14 versions +* [`v6.0.0`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile) +### Node 12 versions +* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) * [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) * [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile) From 5d59a618a2d6b261b57360a0e343b8186dea80c6 Mon Sep 17 00:00:00 2001 From: buanet Date: Mon, 6 Dec 2021 20:53:51 +0100 Subject: [PATCH 14/18] docu --- CHANGELOG.md | 11 +- README.md | 184 ++++++-------------------------- src/README_docker_hub_buanet.md | 3 +- 3 files changed, 38 insertions(+), 160 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bdf299..d7179c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,13 @@ ## Changelog ### v6.0.0-beta1 (2021-10-07) -* upgrading node version to recommended v14 -* adding beta-node16 tag for betatest +* upgrading node version to recommended node14 +* adding beta-node16 tag for beta testing node16 +* updating documentation * v5.3.0-beta1 (2021-10-07) - * adding check for PACKAGES on startup (#201) - * adding packages for discovery - * adding packages for backitup + * adding check (installed) PACKAGES on startup (#201) + * adding packages for discovery adapter + * adding packages for backitup adapter * reorganizing Dockerfile ### v5.2.0 (2021-09-30) diff --git a/README.md b/README.md index 3e936e4..11a7e32 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,40 @@ [![License](https://img.shields.io/github/license/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md) [![Donate](https://img.shields.io/badge/donate-paypal-blue?style=flat)](https://paypal.me/buanet) -This image is a ready to use Docker image for ioBroker IoT platform (http://www.iobroker.net). +The code provided in this repo is used to automatically generate the official Docker Image for ioBroker. -It was originally created for running on a Synology DiskStation 1515+ with DSM 6 and official Docker package installed, but should run on any other Linux based Docker host too. +If you don't know what ioBroker is, please check out [iobroker.net](https://www.iobroker.net) -After years of development it might be the best documented and maintained Docker image for running ioBroker IoT platform with Docker. +If you dont know what Docker is, please check out [docker.com](https://docker.com) -Since v4.0.0 the image is available for the following architectures: amd64, armv7hf, aarch64. +## Getting started -In v5.1.0 it became the official Docker Image for the ioBroker Project. +### Basic Information + +You will find some basic information about the image amd how to use it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/src/README_docker_hub_buanet.md). + +### Detailed documentation + +You will find a detailed documentation of the image at the new [docs page](https://docs.buanet.de/iobroker-docker-image/docs/). + +### Get the image + +You can pull the Docker image from: +* [Docker Hub (buanet)](https://hub.docker.com/r/buanet/iobroker) +* [Docker Hub (iobroker)](https://hub.docker.com/r/iobroker/iobroker) +* [GitHub Container Repo](https://github.com/buanet/ioBroker.docker/pkgs/container/iobroker) + +### Get help + +If you have any questions or need help please contact the ioBroker community: +* [ioBroker Forum]() +* [Discord Channel]() +* [Facebook Group]() +* [Telegram Group]() + +### Report an issue or request a feature + +If you found an issue or missing some feature please let us know by opening an [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). ## Important notice @@ -30,157 +55,8 @@ You might avoid these procedure if you use my "Best practice" hint for "upgradin In any case make a backup first! -## Getting started - -A detailed tutorial (German, based on v3.0.0) can be found here: [https://smarthome.buanet.de](https://smarthome.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 so every user can benefit from it . Thanks in advance. - -If you think you found a bug or simply want to request a new feature please open an issue on Github so we can talk about. - -The following ways to get iobroker-container running are only examples. Maybe you have to change, add or replace parameters to configure ioBroker for fitting your needs. - -### Running from command line - -For taking a first look at the iobroker docker container it would be enough to simply run the following basic docker run command: - -``` -docker run -p 8081:8081 --name iobroker -v iobrokerdata:/opt/iobroker buanet/iobroker:latest -``` - -### Running with docker-compose - -You can also run iobroker by using docker-compose. Here is an example: - -``` -version: '2' - -services: - iobroker: - restart: always - image: buanet/iobroker:latest - container_name: iobroker - hostname: iobroker - ports: - - "8081:8081" - volumes: - - iobrokerdata:/opt/iobroker -``` - -## Special settings and features - -The following will give a short overview. - -### Environment variables - -To configure the ioBroker container on startup it is possible to set some environment variables. -You do not have to declare every single variable when setting up your container. Variables you do not set will come up with their default value. - -**Important: In v4.2.0 the ENVs "ADMINPORT" and "REDIS" were renamed/ reorganized. For Details see the following table!** - -|ENV|Default|Description| -|---|---|---| -|AVAHI|false|Installs and activates avahi-daemon for supporting yahka-adapter, can be "true" or "false"| -|IOB_ADMINPORT|8081|Sets ioBroker adminport on startup| -|IOB_MULTIHOST|[not set]|Sets ioBroker instance as "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)| -|IOB_OBJECTSDB_HOST|127.0.0.1|Sets host for ioBroker objects db| -|IOB_OBJECTSDB_PORT|9001|Sets port for ioBroker objects db| -|IOB_OBJECTSDB_TYPE|file|Sets type of ioBroker objects db, cloud be "file" or "redis"
(at the moment redis as objects db is [not officially supported by ioBroker](https://github.com/ioBroker/ioBroker#databases))| -|IOB_STATESDB_HOST|127.0.0.1|Sets host for ioBroker states db| -|IOB_STATESDB_PORT|9000|Sets port for ioBroker states db| -|IOB_STATESDB_TYPE|file|Sets type of ioBroker states db, could be "file" or "redis"| -|LANG|de_DE.UTF‑8|The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8| -|LANGUAGE|de_DE:de|The following locales are pre-generated: de_DE:de, en_US:en| -|LC_ALL|de_DE.UTF-8|The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8| -|PACKAGES|[not set]|Installs additional linux packages to your container, packages should be seperated by whitespace like this: "package1 package2 package3"| -|SETGID|1000|For some reasons it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host| -|SETUID|1000|For some reasons it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host| -|TZ|Europe/Berlin|All valid Linux-timezones| -|USBDEVICES|none|Sets relevant permissions on mounted devices like "/dev/ttyACM0", for more than one device separate with ";" like this: "/dev/ttyACM0;/dev/ttyACM1"| -|ZWAVE|false|Will install openzwave to support zwave-adapter, can be "true" or "false"| - -### Mounting folder/ volume - -It is possible to mount an empty folder to /opt/iobroker during first startup of the container. The startup script will check this folder and restore content if it is empty. - -Since v4.1.0 it is also possible mount a folder filled up with an iobroker backup file created using `iobroker backup` command or backitup adapter. Please make sure the name of your backup file ends like this: `*_backupiobroker.tar.gz"`. - -The startup script will then detect this backup and restore it during the start of the container. Please see container logs when starting the container for more details! - -Note: It is absolutely recommended to use a mounted folder or persistent volume for /opt/iobroker folder! - -You can also mount a folder containing an existing ioBroker-installation (e.g. when moving an existing installation to docker). -But watch for the used node version. If the existing installation runs with another major version of node you have do perform additional steps. For more Details see the "Important notice" on top of this readme.md file. - -**Important: If the folder you mount to /opt/iobroker in your container is placed on a mounted device, partition or other storage, the mountpoint on your host should NOT have the "noexec" flag activated. Otherwise you may get problems executing ioBroker inside the container!** - -### Mounting USB device - -If you want to use a USB device within ioBroker inside your container don´t forget to [mount the device](https://docs.docker.com/engine/reference/commandline/run/#add-host-device-to-container---device) on container startup and use the environment variable "USBDEVICES". - -### User defined startup scripts - -It is possible to add some script code to container startup with the help of the userscripts feature. You can get this to work by mounting an additional folder to `/opt/userscripts` into the container. - -When you mount an empty folder the startup script will restore two example scripts in there. To activate the scripts you have to remove the `_example` part of the name. The "userscript_firststart.sh" will execute only at the very first start of a new container, while the "userscript_everystart.sh" will execute on every container start. - -Feel free to test it with my example code. Take a look at the log. In "Step 4 of 5: Applying special settings" you will see the messages generated by the example userscripts. - -### Multihost - -With the help of the ENV "IOB_MULTIHOST" and the ENVs for objects and states db connections (see ENVs table above) it is now possible to run a container as standalone, multihost master or multihost slave. This is more or less a feature for advanced users. Please make sure you know how ioBroker multihost is working and set the ENVs as with `ìobroker setup custom`. - -There is no need for executing `iobroker multihost enable` or `iobroker multihost connect` inside the container. Just configure the mentioned ENVs. The startup script will do all the magic. - -For general information about iobroker multihost feature please see [official ioBroker documentation](https://www.iobroker.net/docu/index-24.htm?page_id=3068&lang=de). - -### Healthcheck - -Since v5.1.0 the image contains a simple Docker healthcheck. At the moment it only checks if js-controller is running inside the container and reports "healthy" or "unhealthy" to the Docker daemon. Further development is planned. - -The healthcheck is configured to 5 retries in an 15s interval with a timeout of 5s. So a container needs a minimum of one minute to get unhealthy. - -Hint: As the Docker daemon itself gives no opportunity to automatically restart an unhealthy container you might want to setup some kind of "watchdog container" like this simple one: https://github.com/buanet/docker-watchdog. - -### Maintenance script (beta) - -Within the implementation of the docker health check (above) some manual maintenance actions, like stopping ioBroker for upgrading js-controller, would cause the container to get "unhealthy" and may cause an external watchdog to automatically restart it. - -In this case you can use the new maintenance command line tool inside the container. By simply typing `maintenance on` it will activate some kind of "maintenance mode" and automatically stop ioBroker while the container stays healthy. - -After your maintenance is done just type `maintenance off`. Depending on the selected restart policy of your container, the command will stop (and automatically restart) it. - -## Best practices - -### Avoid using "latest" docker tag - -To avoid conflicts when upgrading your container or getting in trouble when accidentally upgrading your container to a new major version I prefer using a version docker tag like "v4.2.0" instead of "latest" for creating your container. - -With v5.1.0 an additional docker tag "latest-[major version]" is available. This gives you the possibility update your container automatically while always staying in the same major version. - -### Upgrading your container - -If you want to upgrade your ioBroker container to a new major version (e.g. from v4 to v5) I would prefer to do that by creating a backup in ioBroker (by "iobroker backup" or backitup adapter) and restoring it to a completely new container. All you need is time an the following steps: -* make a backup by command line ("iobroker backup") or backitup adapter -* stop the old container -* create a new and empty data folder or volume and place your backup file in it -* create a new container as your old or as you need it and use the new data folder/ volume for the /opt/iobroker mount point -* follow the log output of the container and be patient - -After this steps the startup script inside the container will automatically detect and restore your backup to a new ioBroker instance. When iobroker is started after the restore it will install your adapters to the new ioBroker instance by itself. This might take some time but will give you the best and cleanest results... - -### Switching states db from file to redis - -If you want to switch states db from file to redis on a n existing installation you might want to keep all your actual states. As simply setting the needed ENVs won't migrate your existing states into the redis db it is best practice to first run "iobroker setup custom" inside your container before adding the ENVs. This will give you the choice to migrate your states. - ## Miscellaneous -### Detecting this Docker image by ioBroker (feature for adapter developers) - -For adapter developers it is now possible to easily detect if ioBroker is running inside the official docker container. Please simply check if the file `/opt/scripts/.docker_config/.thisisdocker` exists. The content of the file will tell the image version. - ### Beta testing If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. You can find the readme.md file for beta versions [here](https://github.com/buanet/ioBroker.docker/blob/beta/README.md). Please make sure to read the changelog before testing beta versions. diff --git a/src/README_docker_hub_buanet.md b/src/README_docker_hub_buanet.md index b44219d..2381e77 100644 --- a/src/README_docker_hub_buanet.md +++ b/src/README_docker_hub_buanet.md @@ -3,7 +3,7 @@ [![Docker Image Size (tag)](https://img.shields.io/docker/image-size/buanet/iobroker/latest?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker) [![Docker Pulls](https://img.shields.io/docker/pulls/buanet/iobroker?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker) [![Docker Stars](https://img.shields.io/docker/stars/buanet/iobroker?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker)
-[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/buanet/ioBroker.docker/Build%20debian%20based%20image%20\(beta\))](https://github.com/buanet/docker.watchdog/actions/workflows/docker_build_main_image.yml) +[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/buanet/ioBroker.docker/Build%20debian%20based%20image%20\(latest\))](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml) [![Release](https://img.shields.io/github/v/release/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/releases) [![Github Issues](https://img.shields.io/github/issues/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/issues)
[![Source](https://img.shields.io/badge/source-github-blue?style=flat)](https://github.com/buanet/ioBroker.docker) @@ -30,6 +30,7 @@ It is highly recommended not to use the `latest` tag for production, especially ### Node 14 versions * [`v6.0.0`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile) + ### Node 12 versions * [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) * [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) From a0460749c29d703321c4c075ad6b2fc8fa9c2811 Mon Sep 17 00:00:00 2001 From: buanet Date: Mon, 6 Dec 2021 22:30:40 +0100 Subject: [PATCH 15/18] docs --- README.md | 41 +++++++++++++++---------------- src/README_docker_hub_buanet.md | 4 +-- src/README_docker_hub_iobroker.md | 20 ++++++++++----- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 11a7e32..7684a0c 100644 --- a/README.md +++ b/README.md @@ -2,39 +2,42 @@ -[![Source](https://img.shields.io/badge/source-github-blue?style=flat)](https://github.com/buanet/ioBroker.docker) -[![Release](https://img.shields.io/github/v/release/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/releases) -[![Github Issues](https://img.shields.io/github/issues/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/issues)
[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/buanet/iobroker/latest?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker) [![Docker Pulls](https://img.shields.io/docker/pulls/buanet/iobroker?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker) [![Docker Stars](https://img.shields.io/docker/stars/buanet/iobroker?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker)
+[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/buanet/ioBroker.docker/Build%20debian%20based%20image%20\(latest\))](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml) +[![Release](https://img.shields.io/github/v/release/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/releases) +[![Github Issues](https://img.shields.io/github/issues/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/issues)
+[![Source](https://img.shields.io/badge/source-github-blue?style=flat)](https://github.com/buanet/ioBroker.docker) [![License](https://img.shields.io/github/license/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md) [![Donate](https://img.shields.io/badge/donate-paypal-blue?style=flat)](https://paypal.me/buanet) The code provided in this repo is used to automatically generate the official Docker Image for ioBroker. -If you don't know what ioBroker is, please check out [iobroker.net](https://www.iobroker.net) +## Quick links -If you dont know what Docker is, please check out [docker.com](https://docker.com) +Don't know what's ioBroker? :arrow_right: [iobroker.net](https://www.iobroker.net)
+Don't know what's Docker? :arrow_right: [docker.com](https://docker.com)
+Looking for documentation? :arrow_right: [docs.buanet.de](https://docs.buanet.de/iobroker-docker-image/docs/) -## Getting started +## FAQ (frequently asked questions) -### Basic Information +### How to run the image? -You will find some basic information about the image amd how to use it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/src/README_docker_hub_buanet.md). +You con find some basic information about the image amd how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/src/README_docker_hub_buanet.md). -### Detailed documentation +### Is there a more detailed documentation? -You will find a detailed documentation of the image at the new [docs page](https://docs.buanet.de/iobroker-docker-image/docs/). +You con find a detailed documentation of the image on the new [docs page](https://docs.buanet.de/iobroker-docker-image/docs/). -### Get the image +### Where can I pull the image? You can pull the Docker image from: * [Docker Hub (buanet)](https://hub.docker.com/r/buanet/iobroker) * [Docker Hub (iobroker)](https://hub.docker.com/r/iobroker/iobroker) * [GitHub Container Repo](https://github.com/buanet/ioBroker.docker/pkgs/container/iobroker) -### Get help +### Where can I get help? If you have any questions or need help please contact the ioBroker community: * [ioBroker Forum]() @@ -42,18 +45,14 @@ If you have any questions or need help please contact the ioBroker community: * [Facebook Group]() * [Telegram Group]() -### Report an issue or request a feature +### How to report an issue or request a feature? -If you found an issue or missing some feature please let us know by opening an [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). +If you think you found an issue let us know by opening an [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). Make sure you have googled it before. +Please do not use the issues for support questions. Not every error message is worth a new report. Use [discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure. -## Important notice +### Is there something else I have to know? -In general a new major version (e.g. v2, v4, v5) of the image comes with a new, preinstalled major node version! -If you are updating an existing installation to a new major version (e.g. from v4 to v5) you have to perform some additional steps inside ioBroker! For more details please see official ioBroker documentation: [EN](https://www.iobroker.net/#en/documentation/install/updatenode.md) | [DE](https://www.iobroker.net/#de/documentation/install/updatenode.md).
- -You might avoid these procedure if you use my "Best practice" hint for "upgrading your ioBroker container". - -In any case make a backup first! +Always have an actual valid backup of your ioBroker. You can easily create a backup by using the `iobroker backup` command or the preinstalled backitup adapter. ## Miscellaneous diff --git a/src/README_docker_hub_buanet.md b/src/README_docker_hub_buanet.md index 2381e77..d0888f3 100644 --- a/src/README_docker_hub_buanet.md +++ b/src/README_docker_hub_buanet.md @@ -12,7 +12,7 @@ # Important Note -New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see "Best Practices" section at the brand new [Official ioBroker Docker Image Docs](https://docs.buanet.de/iobroker-docker-image/docs/). +New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see "Best Practices" section at our new [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/). # Quick reference @@ -22,7 +22,7 @@ New major image versions (e.g. v4, v5, v6) always come with a new major version * Supported architectures: amd64, arm32v7, arm64v8 * Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md) * Source code: [Github Repository](https://github.com/buanet/ioBroker.docker) -* All other questions should be answered here: [Official ioBroker Docker Image Docs](https://docs.buanet.de/iobroker-docker-image/docs/) or [iobroker.net](https://www.iobroker.net/) +* All other questions should be answered here: [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/) or [iobroker.net](https://www.iobroker.net/) # Supported tags diff --git a/src/README_docker_hub_iobroker.md b/src/README_docker_hub_iobroker.md index 626a7fc..bb33d55 100644 --- a/src/README_docker_hub_iobroker.md +++ b/src/README_docker_hub_iobroker.md @@ -3,13 +3,15 @@ [![Docker Image Size (tag)](https://img.shields.io/docker/image-size/buanet/iobroker/latest?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker) [![Docker Pulls](https://img.shields.io/docker/pulls/buanet/iobroker?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker) [![Docker Stars](https://img.shields.io/docker/stars/buanet/iobroker?style=flat)](https://hub.docker.com/repository/docker/buanet/iobroker)
-[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/buanet/ioBroker.docker/Build%20debian%20based%20image%20\(beta\))](https://github.com/buanet/docker.watchdog/actions/workflows/docker_build_main_image.yml) +[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/buanet/ioBroker.docker/Build%20debian%20based%20image%20\(latest\))](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian-image-main.yml) [![Release](https://img.shields.io/github/v/release/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/releases) [![Github Issues](https://img.shields.io/github/issues/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/issues)
[![Source](https://img.shields.io/badge/source-github-blue?style=flat)](https://github.com/buanet/ioBroker.docker) [![License](https://img.shields.io/github/license/buanet/ioBroker.docker?style=flat)](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md) -**Note:** New major versions (e.g. v4, v5, v6) of the image always come with a new major verson of node (preinstalled). To avoid issues when upgrading into a new major version the best practice recommendation is to migrate using backup and restore procedure. For more details please see "Best Practices" section on official [readme.md](https://github.com/buanet/ioBroker.docker#best-practices). +# Important Note + +New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see "Best Practices" section at our new [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/). # Quick reference @@ -19,11 +21,17 @@ * Supported architectures: amd64, arm32v7, arm64v8 * Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md) * Source code: [Github Repository](https://github.com/buanet/ioBroker.docker) -* All other questions should be answered here: [Github Repository Readme](https://github.com/buanet/ioBroker.docker#readme) or [iobroker.net](https://www.iobroker.net/) +* All other questions should be answered here: [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/) or [iobroker.net](https://www.iobroker.net/) # Supported tags -* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) +It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-vX` tag instead. + +### Node 14 versions +* [`v6.0.0`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`v6.0.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest-v6`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v6.0.0/debian/node14/Dockerfile) + +### Node 12 versions +* [`v5.2.0`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`v5.2.0-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile), [`latest-v5`](https://github.com/buanet/ioBroker.docker/blob/v5.2.0/debian/node12/Dockerfile) * [`v5.1.0`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/amd64/Dockerfile), [`v5.1.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/armv7hf/Dockerfile), [`v5.1.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.1.0/aarch64/Dockerfile) * [`v5.0.0`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-amd64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/amd64/Dockerfile), [`v5.0.0-armv7hf`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/armv7hf/Dockerfile), [`v5.0.0-aarch64`](https://github.com/buanet/ioBroker.docker/blob/v5.0.0/aarch64/Dockerfile) @@ -40,7 +48,7 @@ For further details please check out [iobroker.net](https://www.iobroker.net). For taking a first look at iobroker on docker it would be enough to simply run the following basic docker run command: ``` -docker run -p 8081:8081 --name iobroker -h iobroker iobroker/iobroker +docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker ``` ## Running with docker-compose @@ -53,7 +61,7 @@ version: '2' services: iobroker: container_name: iobroker - image: iobroker/iobroker + image: buanet/iobroker hostname: iobroker restart: always ports: From 9dd5391499bbf4131f94c8aec3bf44a05e0bda5d Mon Sep 17 00:00:00 2001 From: buanet Date: Mon, 6 Dec 2021 22:35:35 +0100 Subject: [PATCH 16/18] docu --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7684a0c..34c9a6b 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,13 @@ The code provided in this repo is used to automatically generate the official Docker Image for ioBroker. -## Quick links +## :rocket: Quick links Don't know what's ioBroker? :arrow_right: [iobroker.net](https://www.iobroker.net)
Don't know what's Docker? :arrow_right: [docker.com](https://docker.com)
Looking for documentation? :arrow_right: [docs.buanet.de](https://docs.buanet.de/iobroker-docker-image/docs/) -## FAQ (frequently asked questions) +## :question: FAQ (frequently asked questions) ### How to run the image? @@ -54,7 +54,7 @@ Please do not use the issues for support questions. Not every error message is w Always have an actual valid backup of your ioBroker. You can easily create a backup by using the `iobroker backup` command or the preinstalled backitup adapter. -## Miscellaneous +## :memo: Miscellaneous ### Beta testing From da63f43852748b27a9e7c44e10814e0c8870b055 Mon Sep 17 00:00:00 2001 From: buanet Date: Mon, 6 Dec 2021 23:21:52 +0100 Subject: [PATCH 17/18] docu --- README.md | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 34c9a6b..8a697c0 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ The code provided in this repo is used to automatically generate the official Docker Image for ioBroker. +Because this README has become more and more confusing, I decided to convert it into a full documentation and moved it to a ["better place"](https://docs.buanet.de/iobroker-docker-image/docs/). + ## :rocket: Quick links Don't know what's ioBroker? :arrow_right: [iobroker.net](https://www.iobroker.net)
@@ -24,11 +26,11 @@ Looking for documentation? :arrow_right: [docs.buanet.de](https://docs.buanet.de ### How to run the image? -You con find some basic information about the image amd how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/src/README_docker_hub_buanet.md). +You can find some basic information about the image amd how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/src/README_docker_hub_buanet.md). ### Is there a more detailed documentation? -You con find a detailed documentation of the image on the new [docs page](https://docs.buanet.de/iobroker-docker-image/docs/). +You can find a detailed documentation of the image on the new [docs page](https://docs.buanet.de/iobroker-docker-image/docs/). ### Where can I pull the image? @@ -40,43 +42,33 @@ You can pull the Docker image from: ### Where can I get help? If you have any questions or need help please contact the ioBroker community: -* [ioBroker Forum]() -* [Discord Channel]() -* [Facebook Group]() -* [Telegram Group]() +* [ioBroker forum](https://forum.iobroker.net/) +* [Discord channel](https://discord.gg/Ne3y6fUac3) +* [Facebook group](https://www.facebook.com/groups/440499112958264/) ### How to report an issue or request a feature? If you think you found an issue let us know by opening an [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). Make sure you have googled it before. Please do not use the issues for support questions. Not every error message is worth a new report. Use [discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure. -### Is there something else I have to know? - -Always have an actual valid backup of your ioBroker. You can easily create a backup by using the `iobroker backup` command or the preinstalled backitup adapter. - -## :memo: Miscellaneous +## :eyes: Miscellaneous ### Beta testing -If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. You can find the readme.md file for beta versions [here](https://github.com/buanet/ioBroker.docker/blob/beta/README.md). Please make sure to read the changelog before testing beta versions. - -### Subscribe to updates - -If you want the newest updates about the image and my tutorials at https://smarthome.buanet.de you can simply subscribe to my new "news and updates" channel (only in German) on Telegram. -You will find the channel here: https://t.me/buanet_tutorials +If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. You can find the changelog for beta versions [here](https://github.com/buanet/ioBroker.docker/blob/dev/CHANGELOG.md). For more details and beta support join us at the "docker-image" chat on the [ioBroker Discord channel](https://discord.gg/Ne3y6fUac3). ### Support the project The easiest way to support this project is to leave me some likes/ stars on Github and Docker hub!
-If you want to give something back, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and helping me answering questions, fixing bugs or adding new features!
-And if you want to buy me a beer instead, you can do this here:
+If you want to give something back to the community, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and help me answering questions, fixing bugs or adding new features!
+If that doesn't work for you and you want to buy me a beer instead, you can do this here:
Thank you! -## Changelog +## :memo: Changelog Moved to [CHANGELOG.md](CHANGELOG.md). -## License +## :copyright: License MIT License @@ -100,6 +92,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -## Credits +## :star: Credits Inspired by https://github.com/MehrCurry/docker-iobroker From a8f90cab494685aa97ce67a04708109bd59cdb2d Mon Sep 17 00:00:00 2001 From: buanet Date: Thu, 9 Dec 2021 20:44:07 +0100 Subject: [PATCH 18/18] update readme --- README.md | 4 ++-- src/README_docker_hub_buanet.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8a697c0..b5f82d8 100644 --- a/README.md +++ b/README.md @@ -41,14 +41,14 @@ You can pull the Docker image from: ### Where can I get help? -If you have any questions or need help please contact the ioBroker community: +If you have any questions or need help please visit the ioBroker community: * [ioBroker forum](https://forum.iobroker.net/) * [Discord channel](https://discord.gg/Ne3y6fUac3) * [Facebook group](https://www.facebook.com/groups/440499112958264/) ### How to report an issue or request a feature? -If you think you found an issue let us know by opening an [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). Make sure you have googled it before. +If you think you found an issue let us know by opening a [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). Make sure you have googled it before. Please do not use the issues for support questions. Not every error message is worth a new report. Use [discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure. ## :eyes: Miscellaneous diff --git a/src/README_docker_hub_buanet.md b/src/README_docker_hub_buanet.md index d0888f3..97c8d2f 100644 --- a/src/README_docker_hub_buanet.md +++ b/src/README_docker_hub_buanet.md @@ -12,7 +12,7 @@ # Important Note -New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see "Best Practices" section at our new [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/). +New major image versions (e.g. v4, v5, v6) always come with a new major version of node! This might lead to problems when you update your ioBroker container by simply recreating it from the new major version image! To avoid having trouble with recompiling adapters, it is recommended to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the new [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance). # Quick reference