Merge branch 'dev' into dev-temp

This commit is contained in:
André Germann
2021-11-22 12:52:08 +01:00
committed by GitHub
15 changed files with 311 additions and 175 deletions

View File

@@ -1 +1 @@
v5.2.0
v6.0.0-beta

View File

@@ -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,11 +12,11 @@ on:
workflow_dispatch:
jobs:
bulid-beta-node14-image:
bulid-beta-node16-image:
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'
@@ -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: |
@@ -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
@@ -65,52 +65,52 @@ jobs:
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build Docker image (node14-amd64)
uses: docker/build-push-action@v2.6.1
- 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)
uses: docker/build-push-action@v2.6.1
- 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)
uses: docker/build-push-action@v2.6.1
- 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@v3
uses: actions/github-script@v5
with:
github-token: ${{ secrets.PACKAGES_PASS }}
script: |

View File

@@ -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'
@@ -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: |
@@ -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
@@ -66,10 +66,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/amd64
tags: |
@@ -77,10 +77,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm/v7
tags: |
@@ -88,10 +88,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm64/v8
tags: |
@@ -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: |

View File

@@ -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,11 +8,11 @@ on:
- dev
jobs:
bulid-dev-node14-image:
bulid-dev-node16-image:
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'
@@ -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: |
@@ -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
@@ -61,48 +61,48 @@ jobs:
username: ${{ secrets.PACKAGES_USER }}
password: ${{ secrets.PACKAGES_PASS }}
- name: Build Docker image (node14-amd64)
uses: docker/build-push-action@v2.6.1
- 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)
uses: docker/build-push-action@v2.6.1
- 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)
uses: docker/build-push-action@v2.6.1
- 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@v3
uses: actions/github-script@v5
with:
github-token: ${{ secrets.PACKAGES_PASS }}
script: |

View File

@@ -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'
@@ -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: |
@@ -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
@@ -62,10 +62,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/amd64
tags: |
@@ -73,10 +73,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm/v7
tags: |
@@ -84,10 +84,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm64/v8
tags: |
@@ -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: |

View File

@@ -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'
@@ -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: |
@@ -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
@@ -64,10 +64,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/amd64
tags: |
@@ -75,10 +75,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm/v7
tags: |
@@ -86,10 +86,10 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm64/v8
tags: |
@@ -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: |

View File

@@ -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'
@@ -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: |
@@ -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
@@ -57,30 +57,30 @@ 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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/amd64
tags: |
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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm/v7
tags: |
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
file: ./debian/node14/Dockerfile
push: true
platforms: linux/arm64/v8
tags: |

View File

@@ -1,10 +1,20 @@
## 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
### 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)
* 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

View File

@@ -14,39 +14,42 @@ 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 \
# 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 +59,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" \

View File

@@ -14,39 +14,42 @@ 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 \
# 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 +59,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" \

97
debian/node16/Dockerfile vendored Normal file
View File

@@ -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 <info@buanet.de>" \
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"]

View File

@@ -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 ' '

View File

@@ -3,9 +3,16 @@
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
sudo apt-get -qq -y install $i
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" ]
then
@@ -16,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

View File

@@ -24,13 +24,13 @@
# 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.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.<br>
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.<br>
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.<br>
For further details please check out [iobroker.net](https://www.iobroker.net).
@@ -41,7 +41,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 +54,7 @@ version: '2'
services:
iobroker:
container_name: iobroker
image: iobroker/iobroker
image: buanet/iobroker
hostname: iobroker
restart: always
ports:
@@ -100,17 +100,17 @@ You could use environment variables to auto configure your ioBroker container on
* `LANG` (optional, default: de_DE.UTF&#x2011;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).<br>
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).<br>
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<br>
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.

View File

@@ -23,13 +23,13 @@
# 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.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.<br>
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.<br>
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.<br>
For further details please check out [iobroker.net](https://www.iobroker.net).
@@ -92,24 +92,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&#x2011;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).<br>
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).<br>
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<br>
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.