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 1/8] 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 2/8] 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 3/8] 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 4/8] 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 5/8] 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 6/8] 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 7/8] 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 8/8] 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