mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 18:39:01 +02:00
Compare commits
214 Commits
v10.0.0-be
...
v11.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df7523d1cb | ||
|
|
04ae0f4bb6 | ||
|
|
9e50735ce5 | ||
|
|
8aa80342a0 | ||
|
|
b62c8d7ee7 | ||
|
|
d98b332d0e | ||
|
|
7b287437b9 | ||
|
|
241ca6db51 | ||
|
|
a676b37144 | ||
|
|
9197c3dee6 | ||
|
|
38c22b15dc | ||
|
|
ecc82a88be | ||
|
|
9dd5097d0d | ||
|
|
94199cba10 | ||
|
|
00d353b68f | ||
|
|
73c77f40ef | ||
|
|
34eaab679f | ||
|
|
39ab62d5f1 | ||
|
|
7e0ab2281d | ||
|
|
2eec1a46f4 | ||
|
|
7dcc948486 | ||
|
|
56b1cf9899 | ||
|
|
b9afbef087 | ||
|
|
c5a6e675e5 | ||
|
|
5191f212ad | ||
|
|
84773f966f | ||
|
|
105aec37de | ||
|
|
e0ca97ba99 | ||
|
|
f84bb008df | ||
|
|
ff8dd7cf42 | ||
|
|
12122fece5 | ||
|
|
f5c5f0c7ee | ||
|
|
9eaff1e39e | ||
|
|
8b8d71621e | ||
|
|
cc69a293cf | ||
|
|
0b945b2e05 | ||
|
|
4a9fc1095a | ||
|
|
82b8ce9463 | ||
|
|
d2e9def207 | ||
|
|
3ac6a10243 | ||
|
|
d31c8561d8 | ||
|
|
0901cad1e5 | ||
|
|
e7afea11d4 | ||
|
|
1e0078f689 | ||
|
|
a9452d5179 | ||
|
|
40f9e1aca9 | ||
|
|
7323deed6b | ||
|
|
fa6486bff8 | ||
|
|
d9a05a7fe9 | ||
|
|
a6a19f2267 | ||
|
|
97c7b79a56 | ||
|
|
0930fa137c | ||
|
|
98559888d4 | ||
|
|
16e4d165d5 | ||
|
|
d9273c5a08 | ||
|
|
93ce694e1f | ||
|
|
318e41d84c | ||
|
|
b7bb47c84a | ||
|
|
2ec8bf6c0b | ||
|
|
e9c1064028 | ||
|
|
74dcd9b0f3 | ||
|
|
e75696041e | ||
|
|
3c935e5637 | ||
|
|
e515245228 | ||
|
|
f6574bc8ad | ||
|
|
8383874542 | ||
|
|
1d25a7ee2f | ||
|
|
5835247059 | ||
|
|
822045a4ae | ||
|
|
866e9a4913 | ||
|
|
ebb0b7b046 | ||
|
|
9dd3712faa | ||
|
|
a2cc4f5246 | ||
|
|
50675a1e0e | ||
|
|
f52aa4f9db | ||
|
|
dc8347a2a7 | ||
|
|
df9a96ef8b | ||
|
|
c98a66934d | ||
|
|
798a02965f | ||
|
|
e9f12ceaab | ||
|
|
960d5249d9 | ||
|
|
adeb8fa3ff | ||
|
|
21e66aedff | ||
|
|
95dc626a02 | ||
|
|
d5acf33650 | ||
|
|
37203dc40f | ||
|
|
30fa668c09 | ||
|
|
38460ad6f4 | ||
|
|
1e035fa65d | ||
|
|
51f33f02e0 | ||
|
|
ab54eaf7f9 | ||
|
|
3b53e6a290 | ||
|
|
c146cdce4d | ||
|
|
f86f1c5941 | ||
|
|
1c367f5539 | ||
|
|
06ec941203 | ||
|
|
7c92f39b86 | ||
|
|
ecb8cb2ed6 | ||
|
|
18b13dd50f | ||
|
|
79d857dcb8 | ||
|
|
cd3510695e | ||
|
|
bf9e30d1c0 | ||
|
|
bbc88d4d5c | ||
|
|
81bea7f7a4 | ||
|
|
b439a04f2e | ||
|
|
922f77279e | ||
|
|
431343b52e | ||
|
|
2b86658af0 | ||
|
|
7252c8f5af | ||
|
|
340d8eceef | ||
|
|
016d0ead53 | ||
|
|
6d6a379fc0 | ||
|
|
9a4beb5aef | ||
|
|
10650fc23f | ||
|
|
87ce008c76 | ||
|
|
480293d372 | ||
|
|
b06f29c33e | ||
|
|
44131ab8b5 | ||
|
|
7ce89797fd | ||
|
|
60e7dff559 | ||
|
|
5d40cae941 | ||
|
|
25b893f84f | ||
|
|
adeec1699d | ||
|
|
10075ddd12 | ||
|
|
cd461e3b1f | ||
|
|
4dcb25c7ca | ||
|
|
980b0b4d8a | ||
|
|
29e1662fc1 | ||
|
|
ddc1b2e93f | ||
|
|
f9440d7c77 | ||
|
|
78c97411f0 | ||
|
|
96fe93d819 | ||
|
|
372f82dca2 | ||
|
|
a66ffffed9 | ||
|
|
567998b7c4 | ||
|
|
36dc9eba9b | ||
|
|
2df113f78a | ||
|
|
5d5e1cb3c1 | ||
|
|
1c3257a040 | ||
|
|
db689e2c10 | ||
|
|
50bd0402a8 | ||
|
|
6fe3add213 | ||
|
|
bab099260a | ||
|
|
44a9e26c69 | ||
|
|
f94ac021b5 | ||
|
|
4a4a016687 | ||
|
|
a369d928e5 | ||
|
|
a46295f806 | ||
|
|
b0fe6a8082 | ||
|
|
47ff8e6ebe | ||
|
|
d3d26d19bb | ||
|
|
ca666b1c6f | ||
|
|
14255e2cb0 | ||
|
|
2528b87e3f | ||
|
|
04ec2bf6a5 | ||
|
|
0112d893ff | ||
|
|
e5e6af6e37 | ||
|
|
4244e91b8a | ||
|
|
b4445922ca | ||
|
|
7a053f5c54 | ||
|
|
9aa7259f62 | ||
|
|
7c21ebe62e | ||
|
|
a03576ee62 | ||
|
|
7a1bdbdd45 | ||
|
|
2549003acd | ||
|
|
1799a84b55 | ||
|
|
e8566624b2 | ||
|
|
6d1c6e1d6f | ||
|
|
ccb2a51ec7 | ||
|
|
dfd330b4c4 | ||
|
|
17ec58c218 | ||
|
|
8055e12372 | ||
|
|
ceb56bb9ad | ||
|
|
37c5ca9778 | ||
|
|
1fb4b5fa66 | ||
|
|
06de6675d9 | ||
|
|
870980ccce | ||
|
|
51a25bb2db | ||
|
|
434ac84f0c | ||
|
|
7257f37b5b | ||
|
|
119367dcd9 | ||
|
|
da53a96d3c | ||
|
|
56fd73aedf | ||
|
|
4058b4098a | ||
|
|
3a22d5e146 | ||
|
|
da56dc48b3 | ||
|
|
f46849d4dd | ||
|
|
f0d8013ff6 | ||
|
|
3910a604e1 | ||
|
|
5a8d251652 | ||
|
|
b934d8bb5c | ||
|
|
2416960d6b | ||
|
|
926f5dd88f | ||
|
|
c933164f41 | ||
|
|
9218a316bb | ||
|
|
c5194b9701 | ||
|
|
5247639a66 | ||
|
|
320a92dff4 | ||
|
|
3bc1952219 | ||
|
|
c6b49e4979 | ||
|
|
1dc2a7e57e | ||
|
|
e0f403c62e | ||
|
|
7249d9e585 | ||
|
|
b7465c5665 | ||
|
|
74e3789edd | ||
|
|
2b3421bb7a | ||
|
|
7f6bc5052f | ||
|
|
89cd94b0b8 | ||
|
|
5c2a6e42dd | ||
|
|
649fd1e300 | ||
|
|
bb12dd4b7b | ||
|
|
21b82c4053 | ||
|
|
7f66aad03f | ||
|
|
75e77d51e4 |
2
.github/dependabot.yml
vendored
2
.github/dependabot.yml
vendored
@@ -5,4 +5,4 @@ updates:
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
target-branch: "beta"
|
||||
target-branch: "main"
|
||||
|
||||
2
.github/dependencies/.admin-version
vendored
2
.github/dependencies/.admin-version
vendored
@@ -1 +1 @@
|
||||
6.12.0
|
||||
7.6.17
|
||||
|
||||
2
.github/dependencies/.backitup-version
vendored
2
.github/dependencies/.backitup-version
vendored
@@ -1 +1 @@
|
||||
2.9.8
|
||||
3.3.5
|
||||
|
||||
2
.github/dependencies/.discovery-version
vendored
2
.github/dependencies/.discovery-version
vendored
@@ -1 +1 @@
|
||||
4.2.0
|
||||
5.0.0
|
||||
|
||||
2
.github/dependencies/.js-controller-version
vendored
2
.github/dependencies/.js-controller-version
vendored
@@ -1 +1 @@
|
||||
5.0.17
|
||||
7.0.6
|
||||
|
||||
1
.github/dependencies/.latest-build
vendored
Normal file
1
.github/dependencies/.latest-build
vendored
Normal file
@@ -0,0 +1 @@
|
||||
20250716.234705
|
||||
2
.github/dependencies/.nodejs-version
vendored
2
.github/dependencies/.nodejs-version
vendored
@@ -1 +1 @@
|
||||
18.17.1
|
||||
v20.19.4
|
||||
|
||||
160
.github/workflows/build-debian12-beta.yml
vendored
160
.github/workflows/build-debian12-beta.yml
vendored
@@ -1,160 +0,0 @@
|
||||
# Github action to build Debian12 image (Tag: beta)
|
||||
name: Build Debian 12 Image (beta)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [prereleased]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
chose_node_version:
|
||||
type: choice
|
||||
description: 'Which Node version should be used?'
|
||||
options:
|
||||
- 'Recommended Node version (default)'
|
||||
- 'Experimental Node version'
|
||||
- 'Both Node versions'
|
||||
|
||||
jobs:
|
||||
build-with-recommended-node:
|
||||
if: inputs.chose_node_version == 'Recommended Node version (default)' || inputs.chose_node_version == 'Both Node versions' || github.event_name == 'release'
|
||||
name: Build with recommended Node version
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetch latest prerelease tag
|
||||
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.4.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.3.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64/v8
|
||||
linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:beta,
|
||||
buanet/iobroker:${{ env.version }},
|
||||
ghcr.io/buanet/iobroker:beta,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
build-with-experimental-node:
|
||||
if: inputs.chose_node_version == 'Experimental Node version' || inputs.chose_node_version == 'Both Node versions' || github.event_name == 'release'
|
||||
name: Build with experimental Node version
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetch latest prerelease tag
|
||||
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.4.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.3.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64/v8
|
||||
linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:beta-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
buanet/iobroker:${{ env.version }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:beta-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
42
.github/workflows/build-debian12-beta_ext.yml
vendored
42
.github/workflows/build-debian12-beta_ext.yml
vendored
@@ -1,42 +0,0 @@
|
||||
# Github action to trigger external Debian12 image build (Tag: beta)
|
||||
name: Trigger external Build (beta)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [prereleased]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
chose_node_version:
|
||||
type: choice
|
||||
description: 'Which Node version should be used?'
|
||||
options:
|
||||
- 'Recommended Node version (default)'
|
||||
- 'Experimental Node version'
|
||||
- 'Both Node versions'
|
||||
|
||||
jobs:
|
||||
trigger_beta_build_on_release:
|
||||
if: github.event_name == 'release'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Trigger beta build on release
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
ref: refs/heads/main
|
||||
workflow: iob.docker - Build Debian 12 Image (beta)
|
||||
repo: buanet/private.actionsrunner
|
||||
inputs: '{ "chose_node_version": "Both Node versions" }'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
trigger_beta_build_manual:
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Trigger beta build on release
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
ref: refs/heads/main
|
||||
workflow: iob.docker - Build Debian 12 Image (beta)
|
||||
repo: buanet/private.actionsrunner
|
||||
inputs: '{ "chose_node_version": "${{ inputs.chose_node_version }}" }'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
478
.github/workflows/build-debian12-beta_sep.yml
vendored
Normal file
478
.github/workflows/build-debian12-beta_sep.yml
vendored
Normal file
@@ -0,0 +1,478 @@
|
||||
# Github action to build Debian12 image (Tag: beta)
|
||||
name: Build Debian 12 Image (beta)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [prereleased]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-build-number:
|
||||
name: Create build number
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
||||
release_tag: ${{ steps.fetch-prerelease-tag.outputs.release_tag }}
|
||||
steps:
|
||||
- name: Fetch prerelease tag
|
||||
id: fetch-prerelease-tag
|
||||
run: |
|
||||
PRERELEASE_TAG=$(curl -sL "https://api.github.com/repos/buanet/ioBroker.docker/releases" | jq -r '[.[] | select(.prerelease)][0].tag_name')
|
||||
if [ -z "$PRERELEASE_TAG" ]; then
|
||||
echo "[LOG] No prerelease found!" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "RELEASE_TAG=$PRERELEASE_TAG" >> $GITHUB_ENV
|
||||
echo "release_tag=$PRERELEASE_TAG" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Release tag: $PRERELEASE_TAG"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Generate build number
|
||||
id: generate-build-number
|
||||
run: |
|
||||
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
||||
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
|
||||
build-beta-armv7-recommended-node:
|
||||
name: Build beta armv7 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
|
||||
build-beta-arm64v8-recommended-node:
|
||||
name: Build beta armv64v8 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
|
||||
build-beta-amd64-recommended-node:
|
||||
name: Build beta amd64 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
|
||||
create-multiarch-image-with-recommended-node:
|
||||
name: Create multiarch image with recommended node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-beta-armv7-recommended-node, build-beta-arm64v8-recommended-node, build-beta-amd64-recommended-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:beta buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:beta ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
|
||||
### experimental node version
|
||||
|
||||
build-beta-armv7-experimental-node:
|
||||
name: Build beta armv7 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-beta-arm64v8-experimental-node:
|
||||
name: Build beta armv64v8 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-beta-amd64-experimental-node:
|
||||
name: Build beta amd64 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
create-multiarch-image-with-experimental-node:
|
||||
name: Create multiarch image with experimental node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-beta-armv7-experimental-node, build-beta-arm64v8-experimental-node, build-beta-amd64-experimental-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:beta-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:beta-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
144
.github/workflows/build-debian12-dev.yml
vendored
144
.github/workflows/build-debian12-dev.yml
vendored
@@ -1,144 +0,0 @@
|
||||
# Github action to build Debian12 image (Tag: dev)
|
||||
name: Build Debian 12 Image (dev)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
chose_node_version:
|
||||
type: choice
|
||||
description: 'Which Node version should be used?'
|
||||
options:
|
||||
- 'Recommended Node version (default)'
|
||||
- 'Experimental Node version'
|
||||
- 'Both Node versions'
|
||||
|
||||
jobs:
|
||||
build-with-recommended-node:
|
||||
if: inputs.chose_node_version == 'Recommended Node version (default)' || inputs.chose_node_version == 'Both Node versions'
|
||||
name: Build with recommended Node version
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.4.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.3.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64/v8
|
||||
linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:dev,
|
||||
buanet/iobroker:dev-node${{ vars.RECOMMENDED_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:dev,
|
||||
ghcr.io/buanet/iobroker:dev-node${{ vars.RECOMMENDED_NODE_VERSION_BETA }}
|
||||
|
||||
build-with-experimental-node:
|
||||
if: inputs.chose_node_version == 'Experimental Node version' || inputs.chose_node_version == 'Both Node versions'
|
||||
name: Build with experimental Node version
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.4.0
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.3.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64/v8
|
||||
linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
446
.github/workflows/build-debian12-dev_sep.yml
vendored
Normal file
446
.github/workflows/build-debian12-dev_sep.yml
vendored
Normal file
@@ -0,0 +1,446 @@
|
||||
# Github action to build Debian12 image (Tag: dev)
|
||||
name: Build Debian 12 Image (dev)
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-build-number:
|
||||
name: Create build number
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Generate build number
|
||||
id: generate-build-number
|
||||
run: |
|
||||
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
||||
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
|
||||
build-dev-armv7-recommended-node:
|
||||
name: Build dev armv7 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev,
|
||||
|
||||
build-dev-arm64v8-recommended-node:
|
||||
name: Build dev armv64v8 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev,
|
||||
|
||||
build-dev-amd64-recommended-node:
|
||||
name: Build dev amd64 image with recommended node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev,
|
||||
|
||||
create-multiarch-image-with-recommended-node:
|
||||
name: Create multiarch image with recommended node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-dev-armv7-recommended-node, build-dev-arm64v8-recommended-node, build-dev-amd64-recommended-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev
|
||||
|
||||
### experimental node version
|
||||
|
||||
build-dev-armv7-experimental-node:
|
||||
name: Build dev armv7 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-dev-arm64v8-experimental-node:
|
||||
name: Build dev armv64v8 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
build-dev-amd64-experimental-node:
|
||||
name: Build dev amd64 image with experimental node version
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }},
|
||||
|
||||
create-multiarch-image-with-experimental-node:
|
||||
name: Create multiarch image with experimental node version
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-dev-armv7-experimental-node, build-dev-arm64v8-experimental-node, build-dev-amd64-experimental-node, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64-dev-node${{ vars.EXPERIMENTAL_NODE_VERSION_BETA }}
|
||||
150
.github/workflows/build-debian12-latest.yml
vendored
150
.github/workflows/build-debian12-latest.yml
vendored
@@ -1,150 +0,0 @@
|
||||
# Github action to build Debian12 image (Tag: latest)
|
||||
name: Build Debian 12 Image (latest)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-latest-for-buanet:
|
||||
name: Build latest image for buanet
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetch latest release tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "Latest release tag : $LATESTRELEASE"
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.4.0
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.3.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64/v8
|
||||
linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:latest,
|
||||
buanet/iobroker:${{ env.majorversion }},
|
||||
buanet/iobroker:${{ env.version }},
|
||||
ghcr.io/buanet/iobroker:latest,
|
||||
ghcr.io/buanet/iobroker:${{ env.majorversion }},
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
build-latest-for-iobroker:
|
||||
name: Build latest image for iobroker
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetch latest release tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "Latest release tag : $LATESTRELEASE"
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.4.0
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.3.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm64/v8
|
||||
linux/arm/v7
|
||||
tags: |
|
||||
iobroker/iobroker:latest,
|
||||
iobroker/iobroker:${{ env.majorversion }},
|
||||
iobroker/iobroker:${{ env.version }},
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
477
.github/workflows/build-debian12-latest_sep.yml
vendored
Normal file
477
.github/workflows/build-debian12-latest_sep.yml
vendored
Normal file
@@ -0,0 +1,477 @@
|
||||
# Github action to build Debian12 image (Tag: latest)
|
||||
name: Build Debian 12 Image (latest)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create-build-number:
|
||||
name: Create build number
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
build_number: ${{ steps.generate-build-number.outputs.build_number }}
|
||||
release_tag: ${{ steps.fetch-release-tag.outputs.release_tag }}
|
||||
steps:
|
||||
- name: Fetch latest release tag
|
||||
id: fetch-release-tag
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
if [ -z "$LATESTRELEASE" ]; then
|
||||
echo "[LOG] No prerelease found!" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "RELEASE_TAG=$LATESTRELEASE" >> $GITHUB_ENV
|
||||
echo "release_tag=$LATESTRELEASE" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Latest release tag : $LATESTRELEASE"
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Generate build number
|
||||
id: generate-build-number
|
||||
run: |
|
||||
BUILD="$(date +"%Y%m%d.%H%M%S")"
|
||||
echo "$BUILD" > .github/dependencies/.latest-build
|
||||
echo "build_number=$BUILD" >> $GITHUB_OUTPUT
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
|
||||
- name: Commit latest release version
|
||||
run: |
|
||||
git config --global user.name 'buanet'
|
||||
git config --global user.email 'info@buanet.de'
|
||||
git checkout main
|
||||
git add .github/dependencies/.latest-build
|
||||
git commit -am "new build" || true
|
||||
git push
|
||||
|
||||
build-latest-armv7-for-buanet:
|
||||
name: Build latest armv7 image for buanet
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7,
|
||||
|
||||
build-latest-arm64v8-for-buanet:
|
||||
name: Build latest armv64v8 image for buanet
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8,
|
||||
|
||||
build-latest-amd64-for-buanet:
|
||||
name: Build latest amd64 image for buanet
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64,
|
||||
|
||||
create-multiarch-image-for-buanet:
|
||||
name: Create multiarch image for buanet
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-latest-armv7-for-buanet, build-latest-arm64v8-for-buanet, build-latest-amd64-for-buanet, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t buanet/iobroker:latest buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:latest ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.majorversion }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.majorversion }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t buanet/iobroker:${{ env.version }}-build.${{ env.build }} buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }} ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 ghcr.io/buanet/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
|
||||
### build for iobroker repo
|
||||
|
||||
build-latest-armv7-for-iobroker:
|
||||
name: Build latest armv7 image for iobroker
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm/v7
|
||||
tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7
|
||||
|
||||
build-latest-arm64v8-for-iobroker:
|
||||
name: Build latest armv64v8 image for iobroker
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.6.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/arm64/v8
|
||||
tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8
|
||||
|
||||
build-latest-amd64-for-iobroker:
|
||||
name: Build latest amd64 image for iobroker
|
||||
needs: [create-build-number]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
# Set values in iobroker_startup.sh
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$BUILD/" ./debian12/scripts/iobroker_startup.sh > ./debian12/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian12/scripts/iobroker_startup.tmp ./debian12/scripts/iobroker_startup.sh
|
||||
# Set values in Dockerfile
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$BUILD/" -e "s/\${BUILD}/$BUILD/" -e "s/\${NODE}/${{ vars.RECOMMENDED_NODE_VERSION }}/" ./debian12/Dockerfile > ./debian12/Dockerfile.tmp
|
||||
mv -f ./debian12/Dockerfile.tmp ./debian12/Dockerfile
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.11.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v6.18.0
|
||||
with:
|
||||
context: ./debian12
|
||||
file: ./debian12/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
|
||||
create-multiarch-image-for-iobroker:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-latest-armv7-for-iobroker, build-latest-arm64v8-for-iobroker, build-latest-amd64-for-iobroker, create-build-number]
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ needs.create-build-number.outputs.release_tag }}
|
||||
|
||||
- name: Set job variables
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-3 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
BUILD="${{ needs.create-build-number.outputs.build_number }}"
|
||||
# Log output and export as Github environment variable
|
||||
echo "[LOG] Nodejs Version: ${{ vars.RECOMMENDED_NODE_VERSION }}"
|
||||
echo "[LOG] Image Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Major Image Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "[LOG] Buildnumber: $BUILD"
|
||||
echo "build=$BUILD" >> $GITHUB_ENV
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Create and push multi-platform image
|
||||
run: |
|
||||
docker buildx imagetools create -t iobroker/iobroker:latest iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t iobroker/iobroker:${{ env.majorversion }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t iobroker/iobroker:${{ env.version }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
docker buildx imagetools create -t iobroker/iobroker:${{ env.version }}-build.${{ env.build }} iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-armv7 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-arm64v8 iobroker/iobroker:${{ env.version }}-build.${{ env.build }}-amd64
|
||||
8
.github/workflows/testing-docker-image.yml
vendored
8
.github/workflows/testing-docker-image.yml
vendored
@@ -11,11 +11,11 @@ jobs:
|
||||
- name: Testing with docker run
|
||||
run: |
|
||||
echo "[LOG] Starting ioBroker Container..."
|
||||
docker run -d -p 8081:8081 --name iobroker -v iobrokerdata:/opt/iobroker buanet/iobroker:latest
|
||||
docker run -d --name iobroker buanet/iobroker:latest
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Waiting for Startup Script..."
|
||||
sleep 30
|
||||
sleep 60
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Writing Logs..."
|
||||
@@ -23,11 +23,11 @@ jobs:
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Checking Web UI..."
|
||||
curl --insecure http://127.0.0.1:8081 2> /dev/null | grep '<title>Admin</title>' &> /dev/null || exit 1
|
||||
docker exec iobroker curl -s http://localhost:8081 | grep -q '<title>Admin</title>' || { echo "[LOG] Fehler: Web UI nicht erreichbar."; exit 1; }
|
||||
echo "[LOG] Done."
|
||||
echo ' '
|
||||
echo "[LOG] Output testrun.log:"
|
||||
cat testrun.log
|
||||
echo ' '
|
||||
echo "[LOG] Test sucesssful."
|
||||
echo "[LOG] Test successful."
|
||||
echo ' '
|
||||
|
||||
10
.github/workflows/update-docker-readme.yml
vendored
10
.github/workflows/update-docker-readme.yml
vendored
@@ -12,22 +12,22 @@ jobs:
|
||||
update-docker-readme:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.2
|
||||
|
||||
- name: Update Docker Hub Readme (buanet)
|
||||
uses: peter-evans/dockerhub-description@v4.0.0
|
||||
uses: peter-evans/dockerhub-description@v4.0.2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
repository: buanet/iobroker
|
||||
short-description: Official Docker image for ioBroker based on Debian Bullseye slim
|
||||
short-description: Official Docker image for ioBroker based on Debian Bookworm slim
|
||||
readme-filepath: ./docs/README_docker_hub_buanet.md
|
||||
|
||||
- name: Update Docker Hub Readme (iobroker)
|
||||
uses: peter-evans/dockerhub-description@v4.0.0
|
||||
uses: peter-evans/dockerhub-description@v4.0.2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
repository: iobroker/iobroker
|
||||
short-description: Official Docker image for ioBroker based on Debian Bullseye slim
|
||||
short-description: Official Docker image for ioBroker based on Debian Bookworm slim
|
||||
readme-filepath: ./docs/README_docker_hub_iobroker.md
|
||||
35
.github/workflows/version-checks.yml
vendored
35
.github/workflows/version-checks.yml
vendored
@@ -10,24 +10,17 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Get and write version
|
||||
id: version
|
||||
run: |
|
||||
LATESTRELEASE="$(curl -sL https://api.github.com/repos/buanet/ioBroker.docker/releases/latest | jq -r '.tag_name')"
|
||||
echo "iobroker=iobroker/iobroker:$LATESTRELEASE" >> $GITHUB_ENV
|
||||
echo "baseimage=library/debian:bookworm-slim" >> $GITHUB_ENV
|
||||
|
||||
- name: Docker Baseimage Checker
|
||||
id: baseimage
|
||||
uses: mkumatag/container-image-updater-action@v1.0.6
|
||||
- name: Docker baseimage check
|
||||
id: baseimage-check
|
||||
uses: lucacome/docker-image-update-checker@v2.0.0
|
||||
with:
|
||||
base-image: '${{ env.baseimage }}'
|
||||
image: '${{ env.iobroker }}'
|
||||
base-image: debian:bookworm-slim
|
||||
image: buanet/iobroker:latest
|
||||
|
||||
- name: Fetch ioBroker and nodejs versions
|
||||
run: |
|
||||
@@ -43,8 +36,8 @@ jobs:
|
||||
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||
jq -r '."discovery".version' > .github/dependencies/.discovery-version
|
||||
echo "[LOG] Fetched discovery version is $(cat .github/dependencies/.discovery-version)"
|
||||
curl -sL "https://deb.nodesource.com/node_18.x/dists/bullseye/main/binary-amd64/Packages" | \
|
||||
awk -F ': ' '/^Version:/ {split($2,a,"-"); print a[1]}' > .github/dependencies/.nodejs-version
|
||||
curl -sL https://nodejs.org/dist/index.json | \
|
||||
jq -r 'map(select(.version | startswith("v20."))) | .[0].version' > .github/dependencies/.nodejs-version
|
||||
echo "[LOG] Fetched nodejs version is $(cat .github/dependencies/.nodejs-version)"
|
||||
|
||||
- name: Check for modified files
|
||||
@@ -59,10 +52,16 @@ jobs:
|
||||
git commit -am "new ioBroker versions"
|
||||
git push
|
||||
|
||||
- name: Logging result
|
||||
run: |
|
||||
echo "base image updated = ${{ steps.baseimage-check.outputs.needs-updating }}"
|
||||
echo "ioBroker version updated = ${{ steps.git-check.outputs.modified }}"
|
||||
|
||||
- name: Trigger Build Debian 12 Image (latest)
|
||||
if: steps.baseimage.outputs.needs-update == 'true' || steps.git-check.outputs.modified == 'true'
|
||||
if: steps.baseimage-check.outputs.needs-updating == 'true' || steps.git-check.outputs.modified == 'true'
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
workflow: Build Debian 12 Image (latest)
|
||||
repo: buanet/ioBroker.docker
|
||||
ref: 'main'
|
||||
workflow: 'Build Debian 12 Image (latest)'
|
||||
repo: 'buanet/iobroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
24
CHANGELOG.md
24
CHANGELOG.md
@@ -1,10 +1,24 @@
|
||||
## Changelog
|
||||
|
||||
### v10.0.0-beta.1 (13.07.2024)
|
||||
* upgrade node version to recommended node20
|
||||
* remove dedicated node setup from dockerfile
|
||||
* improve logging for failed database check ([#411](https://github.com/buanet/ioBroker.docker/issues/411))
|
||||
* rework build process due to problems with github actions
|
||||
### V11.0.0 (21.07.2025)
|
||||
* releasing V11.0.0 instead of V10.1.0 due to the upgrade to recommended node22
|
||||
* v10.1.0-beta.1 (24.05.2025)
|
||||
* remove restore option from maintenance script
|
||||
* restructure build process
|
||||
* add node22 tag to beta
|
||||
* update readme and docs
|
||||
* add sorted list of backups ([#530 by @Marc-Berg](https://github.com/buanet/ioBroker.docker/pull/530))
|
||||
|
||||
### v10.0.0 (08.08.2024)
|
||||
* v10.0.0-beta.2 (07.08.2024)
|
||||
* add build date to image
|
||||
* cleanup dockerfile
|
||||
* test new build process
|
||||
* v10.0.0-beta.1 (13.07.2024)
|
||||
* upgrade node version to recommended node20
|
||||
* remove dedicated node setup from dockerfile
|
||||
* improve logging for failed database check ([#411](https://github.com/buanet/ioBroker.docker/issues/411))
|
||||
* rework build process due to problems with github actions
|
||||
|
||||
### v9.1.2 (05.04.2024)
|
||||
* fix build process by updating npm to latest
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2023 André Germann
|
||||
Copyright (c) 2017-2025 André Germann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
10
README.md
10
README.md
@@ -4,7 +4,7 @@
|
||||
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest_sep.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
@@ -32,7 +32,7 @@ Looking for documentation? :arrow_right: [docs.buanet.de](https://docs.buanet.de
|
||||
|
||||
### How to run the image?
|
||||
|
||||
You can find some basic information about the image amd how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/docs/README_docker_hub_buanet.md).
|
||||
You can find some basic information about the image and how to run it on the [Docker Hub page](https://hub.docker.com/r/buanet/iobroker) or [here](https://github.com/buanet/ioBroker.docker/blob/main/docs/README_docker_hub_buanet.md).
|
||||
|
||||
### Is there a more detailed documentation?
|
||||
|
||||
@@ -61,11 +61,11 @@ Please do not use the issues for support questions. Not every error message is w
|
||||
|
||||
### Beta testing
|
||||
|
||||
If you want to get the newest features and changes feel free to use/ test the beta version of the Docker image. For more details and beta support join us at "beta testing & feedback" > "docker-image" at the [ioBroker Discord channel](https://discord.gg/5jGWNKnpZ8).
|
||||
If you want to get the newest features and changes feel free to use/test the beta version of the Docker image. For more details and beta support join us at "beta testing & feedback" > "docker-image" at the [ioBroker Discord channel](https://discord.gg/5jGWNKnpZ8).
|
||||
|
||||
### Support the project
|
||||
|
||||
The easiest way to support this project is to leave me some likes/ stars on Github and Docker hub!<br>
|
||||
The easiest way to support this project is to leave me some likes/stars on Github and Docker hub!<br>
|
||||
If you want to give something back to the community, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and help me answering questions, fixing bugs or adding new features!<br>
|
||||
If that doesn't work for you and you want to buy me a pizza instead, you can do this here: <a href="https://www.paypal.me/buanet" target="_blank"><img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/pp_logo.png" height="15" width="15"></a><br>
|
||||
Thank you!
|
||||
@@ -78,7 +78,7 @@ Moved to [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2023 André Germann
|
||||
Copyright (c) 2017-2025 André Germann
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
FROM debian:bookworm-slim
|
||||
# FROM node:20.12-bookworm-slim
|
||||
|
||||
|
||||
LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
org.opencontainers.image.description="Official Docker image for ioBroker smarthome software (https://www.iobroker.net)" \
|
||||
@@ -10,7 +12,7 @@ LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.created="${DATI}"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
# Copy files
|
||||
COPY scripts /opt/scripts
|
||||
@@ -38,18 +40,6 @@ RUN apt-get update && apt-get upgrade -y \
|
||||
tzdata \
|
||||
udev \
|
||||
wget \
|
||||
# Install node
|
||||
#&& mkdir -p /etc/apt/keyrings \
|
||||
#&& curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg \
|
||||
#&& echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE}.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
|
||||
#&& printf "Package: *\nPin: origin deb.nodesource.com\nPin-Priority: 1001\n" > /etc/apt/preferences.d/nodesource \
|
||||
#&& apt-get update && apt-get install -q -y --no-install-recommends nodejs \
|
||||
# Temp Fix (check/log npm version, update npm to latest)
|
||||
#&& npm -v \
|
||||
#&& npm install -g npm@latest \
|
||||
#&& npm -v \
|
||||
# Install node-gyp
|
||||
#&& npm install --production -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 \
|
||||
@@ -58,13 +48,12 @@ RUN apt-get update && apt-get upgrade -y \
|
||||
&& mkdir /opt/.docker_config \
|
||||
&& echo "starting" > /opt/.docker_config/.healthcheck \
|
||||
&& echo "${VERSION}" > /opt/.docker_config/.thisisdocker \
|
||||
&& echo "${DATI}" > /opt/.docker_config/.build \
|
||||
&& echo "true" > /opt/.docker_config/.first_run \
|
||||
# Prepare old .docker_config (needed until changed in iobroker)
|
||||
&& mkdir /opt/scripts/.docker_config \
|
||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||
# Run iobroker installer
|
||||
#&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||
# Temp Testing
|
||||
&& curl -sL https://iobroker.net/install.sh -o install.sh \
|
||||
&& sed -i 's/NODE_MAJOR=[0-9]\+/NODE_MAJOR=${NODE}/' install.sh \
|
||||
&& sed -i 's|NODE_JS_BREW_URL=.*|NODE_JS_BREW_URL="https://nodejs.org"|' install.sh \
|
||||
@@ -97,7 +86,8 @@ RUN apt-get update && apt-get upgrade -y \
|
||||
&& rm -rf /tmp/* /var/tmp/* /root/.cache/* /root/.npm/* /var/lib/apt/lists/*
|
||||
|
||||
# Default environment variables
|
||||
ENV DEBIAN_FRONTEND="teletype" \
|
||||
ENV BUILD="${BUILD}" \
|
||||
DEBIAN_FRONTEND="teletype" \
|
||||
LANG="de_DE.UTF-8" \
|
||||
LANGUAGE="de_DE:de" \
|
||||
LC_ALL="de_DE.UTF-8" \
|
||||
|
||||
@@ -29,7 +29,6 @@ display_help() {
|
||||
echo " off > switches mantenance mode OFF and stops or restarts the container"
|
||||
echo " upgrade > puts the container to maintenance mode and upgrades ioBroker"
|
||||
echo " restart > stops iobroker and stops or restarts the container"
|
||||
echo " restore > stops iobroker and restores the last backup"
|
||||
echo " help > shows this help"
|
||||
echo " "
|
||||
echo "OPTIONS"
|
||||
@@ -214,148 +213,10 @@ restart_container() {
|
||||
pkill -u iobroker
|
||||
}
|
||||
|
||||
# restore iobroker
|
||||
# restore iobroker <<< Removed due to changes in backup structure and the availability of the graphical restore with backitup
|
||||
restore_iobroker() {
|
||||
echo "You are now going to perform a restore of your iobroker."
|
||||
echo "During the restore process, the container will automatically switch into maintenance mode and stop ioBroker."
|
||||
echo "Depending on the restart policy, your container will be stopped or restarted automatically after the restore."
|
||||
|
||||
# check autoconfirm
|
||||
if [[ "$autoconfirm" != yes ]]; then
|
||||
local reply
|
||||
read -rp 'Do you want to continue [yes/no]? ' reply
|
||||
if [[ "$reply" != y && "$reply" != Y && "$reply" != yes ]]; then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# check startup script running
|
||||
if check_starting > /dev/null; then
|
||||
echo "Startup script is still running."
|
||||
echo "Please check container log and wait until ioBroker is sucessfully started."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# check mainenance mode
|
||||
if ! maintenance_enabled > /dev/null; then
|
||||
autoconfirm=yes
|
||||
enable_maintenance
|
||||
fi
|
||||
|
||||
# list backup files
|
||||
backup_dir="/opt/iobroker/backups"
|
||||
backup_files=($(find $backup_dir -type f))
|
||||
backup_count=${#backup_files[@]}
|
||||
|
||||
if [[ $backup_count -eq 0 ]]; then
|
||||
echo "Ther are no backup files in $backup_dir."
|
||||
echo "Please check and try again."
|
||||
return 1
|
||||
elif [[ $backup_count -eq 1 ]]; then
|
||||
selected_backup=$(basename "${backup_files[0]}")
|
||||
echo "Selected backup file is \"$selected_backup\"."
|
||||
else
|
||||
# more than one backup file found, ask user to select
|
||||
echo "There are more than one backup file in \"$backup_dir\"."
|
||||
echo ' '
|
||||
echo "Please select file for restore:"
|
||||
for ((i=0; i<$backup_count; i++)); do
|
||||
echo "$i: $(basename "${backup_files[$i]}")"
|
||||
done
|
||||
echo
|
||||
|
||||
read -rp "Enter the number of the backup to restore (0-$((backup_count - 1))): " selected_number
|
||||
selected_backup=$(basename "${backup_files[$selected_number]}")
|
||||
echo ' '
|
||||
echo "Selected backup file is \"$selected_backup\"."
|
||||
echo ' '
|
||||
fi
|
||||
|
||||
# extract backup.json from backup
|
||||
tar -xvzf $backup_dir/$selected_backup -C $backup_dir --strip-components=1 "backup/backup.json" > /dev/null 2>&1
|
||||
# write js-controller versions from backup.json into array
|
||||
jq_output=$(jq --arg TITLE "JS controller" -r '.objects[] | select(.value.common.title == $TITLE)' $backup_dir/backup.json)
|
||||
# remove backup.json
|
||||
rm $backup_dir/backup.json
|
||||
|
||||
result=()
|
||||
while read -r line; do
|
||||
entry=$(echo "$line" | jq -r '.value.common.installedVersion')
|
||||
result+=("$entry")
|
||||
done <<< "$(echo "$jq_output" | jq -c '.')"
|
||||
|
||||
# check for empty array
|
||||
if [[ "${#result[@]}" -eq 0 ]]; then
|
||||
echo "There was a problem detecting the js-controller version in the seclected backup file."
|
||||
return 1
|
||||
else
|
||||
# check if all found js-controller versions are equal (for multihost systems!)
|
||||
first_version=${result[0]}
|
||||
all_versions_equal=true
|
||||
for i in "${result[@]}"; do
|
||||
version=$i
|
||||
if [[ "$version" != "$first_version" ]]; then
|
||||
all_versions_equal=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$all_versions_equal" != true ]]; then
|
||||
echo "Detected different js-controller versions in the selected backup file."
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# compare installed js-controller version with version from backup file
|
||||
echo -n "Checking js-controller versions... "
|
||||
installed_version=$(iob version js-controller)
|
||||
echo "Done."
|
||||
echo ' '
|
||||
echo "Installed js-controller version: $installed_version"
|
||||
echo "Backup js-controller version: $first_version"
|
||||
echo ' '
|
||||
|
||||
if [[ "$first_version" != "$installed_version" ]]; then
|
||||
echo "The installed js-controller version is different from the version in the selected backup file."
|
||||
echo "If you continue, the script will use the \"--force\" option to restore your backup."
|
||||
echo "Although this is normally safe with small version differences, you should know,"
|
||||
echo "that the recommended way is to first install the same js-controller version before restoring the backup file."
|
||||
local reply
|
||||
read -rp 'Do you want to continue [yes/no]? ' reply
|
||||
if [[ "$reply" != y && "$reply" != Y && "$reply" != yes ]]; then
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -n "Restoring ioBroker from \"$selected_backup\"... "
|
||||
|
||||
set +e
|
||||
bash iobroker restore "$selected_backup" --force > /opt/iobroker/log/restore.log 2>&1
|
||||
return_value=$?
|
||||
set -e
|
||||
|
||||
if [[ "$return_value" -ne 0 ]]; then
|
||||
echo "Failed."
|
||||
echo "For more details see \"/opt/iobroker/log/restore.log\"."
|
||||
echo "Please check backup file location and permissions and try again."
|
||||
return 1
|
||||
fi
|
||||
echo "Done."
|
||||
echo " "
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
echo "!!!! IMPORTANT NOTE !!!!"
|
||||
echo "!!!! The maintenance script restored iobroker from a backup file. !!!!"
|
||||
echo "!!!! Check /opt/iobroker/log/restore.log to see if restore was successful. !!!!"
|
||||
echo "!!!! When ioBroker starts it will reinstall all Adapters automatically. !!!!"
|
||||
echo "!!!! This might be take a looooong time! Please be patient! !!!!"
|
||||
echo "!!!! You can view installation process by taking a look at ioBroker log. !!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
sleep 10
|
||||
echo "Container will be stopped or restarted in 10 seconds..."
|
||||
echo "stopping" > "$healthcheck"
|
||||
sleep 10
|
||||
pkill -u iobroker
|
||||
echo "Due to changes in ioBroker backup structure, restoring is no longer supported by this script."
|
||||
echo "Please use the original ioBroker commands or the graphical ui of backitup adapter."
|
||||
}
|
||||
|
||||
# parsing commands and options
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest_sep.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
@@ -11,8 +11,8 @@
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
@@ -34,41 +34,36 @@ New major image versions (e.g. v6, v7, v8) usually include a new major version o
|
||||
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[major_version]` tag instead.
|
||||
|
||||
### Node 18 versions
|
||||
* [`v9.1.0`](https://github.com/buanet/ioBroker.docker/blob/v9.1.0/debian12/Dockerfile), [`latest-v9`](https://github.com/buanet/ioBroker.docker/blob/v9.1.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v9.1.0/debian12/Dockerfile)
|
||||
* [`v9.0.1`](https://github.com/buanet/ioBroker.docker/blob/v9.0.1/debian12/Dockerfile)
|
||||
* [`v8.1.0`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile),
|
||||
* [`v8.0.1`](https://github.com/buanet/ioBroker.docker/blob/v8.0.1/debian/node18/Dockerfile)
|
||||
* [`v8.0.0`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
### Node 22 versions
|
||||
* [`v11.0.0`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest-v11`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile)
|
||||
|
||||
### Node 16 versions
|
||||
* [`v7.2.0`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest-v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile)
|
||||
* [`v7.1.2`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile)
|
||||
* [`v7.0.1`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile)
|
||||
### Node 20 versions
|
||||
* [`v10.0.0`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest-v10`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile)
|
||||
|
||||
# What is ioBroker?
|
||||
|
||||
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>
|
||||
IoBroker is an 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 visualizations.<br>
|
||||
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||
|
||||
# How to use this image?
|
||||
|
||||
## Running from command-line
|
||||
## Quick Start (for testing)
|
||||
|
||||
For taking a first look at iobroker on docker it would be enough to simply run the following basic docker run command:
|
||||
To quickly try out ioBroker in Docker, simply run:
|
||||
|
||||
```
|
||||
docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker
|
||||
```
|
||||
|
||||
## Running with docker-compose
|
||||
**Note:**
|
||||
All data and settings will be lost when the container is removed or recreated. For production use, always use persistent storage (see below).
|
||||
|
||||
When using docker-compose define the iobroker service like this:
|
||||
## Production Setup with Docker Compose
|
||||
|
||||
```
|
||||
version: '2'
|
||||
For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
iobroker:
|
||||
container_name: iobroker
|
||||
@@ -77,70 +72,82 @@ services:
|
||||
restart: always
|
||||
ports:
|
||||
- "8081:8081"
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
|
||||
volumes:
|
||||
iobrokerdata:
|
||||
```
|
||||
|
||||
## Persistent data
|
||||
**Tip:**
|
||||
Depending on your adapters, you may need to expose additional ports or use a different network mode (e.g. `network_mode: host`).
|
||||
See the [Networking section](#notes-about-docker-networks) for more details.
|
||||
|
||||
To make your ioBroker configuration persistent it is recommended to mount a volume or path to `/opt/iobroker`.
|
||||
## Persistent Data
|
||||
|
||||
On command-line add
|
||||
To keep your ioBroker configuration and data, always mount a volume or path to `/opt/iobroker`:
|
||||
|
||||
**Command-line:**
|
||||
```
|
||||
-v iobrokerdata:/opt/iobroker
|
||||
```
|
||||
On docker-compose add
|
||||
```
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
**Docker Compose:**
|
||||
```yaml
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
```
|
||||
|
||||
## Configuration via environment variables
|
||||
## Configuration via Environment Variables
|
||||
|
||||
You could use environment variables to auto configure your ioBroker container on startup.
|
||||
You can use environment variables to automatically configure your ioBroker container at startup.
|
||||
|
||||
### Configure ioBroker application:
|
||||
### Application Configuration
|
||||
|
||||
* `IOB_ADMINPORT` (optional, default: 8081) Set ioBroker adminport on startup
|
||||
* `IOB_BACKITUP_EXTDB` (optional) Set `true` for backing up external databases in ioBroker backitup adapter (Make sure your have read the [docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
* `IOB_MULTIHOST` (optional) Set "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||
* `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PASS` (optional) Set authentication for Redis db connection
|
||||
* `IOB_OBJECTSDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel CLuster db
|
||||
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PASS` (optional, default: 9000) Set authentication for Redis db connection
|
||||
* `IOB_STATESDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel cluster db
|
||||
- `IOB_ADMINPORT` (optional, default: 8081) – Set ioBroker admin port on startup
|
||||
- `IOB_BACKITUP_EXTDB` (optional) – Set `true` to enable external database backup in the Backitup adapter ([see docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
- `IOB_MULTIHOST` (optional) – Set to "master" or "slave" for multihost support (requires additional config for objectsdb and statesdb)
|
||||
- `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) – Type of objects DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) – Host for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PORT` (optional, default: 9001) – Port for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_OBJECTSDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
- `IOB_STATESDB_TYPE` (optional, default: jsonl) – Type of states DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) – Host for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PORT` (optional, default: 9000) – Port for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_STATESDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
|
||||
### Activate special features:
|
||||
### Special Features
|
||||
|
||||
* `AVAHI` (optional) Set `true` to install and activate avahi-daemon for supporting yahka adapter
|
||||
- `AVAHI` (optional) – Set `true` to install and activate avahi-daemon (for yahka adapter support)
|
||||
|
||||
### Configure environment:
|
||||
### Environment Configuration
|
||||
|
||||
* `DEBUG` (optional) Set `true` to get extended logging messages on container startup
|
||||
* `LANG` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `LANGUAGE` (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en
|
||||
* `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `OFFLINE_MODE` (optional) Set `true` if your container has no or limited internet connection
|
||||
* `PACKAGES` (optional) Install additional Linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
||||
* `PACKAGES_UPDATE` (optional) Set `true` if you want to apply Linux package updates at the first start of a new container.
|
||||
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
||||
* `SETGID` (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host
|
||||
* `SETUID` (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host
|
||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
|
||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like `/dev/ttyACM0` (inside the container), for more than one device separate with ";"
|
||||
- `DEBUG` (optional) – Set `true` for extended logging on container startup
|
||||
- `LANG` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `LANGUAGE` (optional, default: de_DE:de) – Pre-generated: de_DE:de, en_US:en
|
||||
- `LC_ALL` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `OFFLINE_MODE` (optional) – Set `true` if your container has no or limited internet connection
|
||||
- `PACKAGES` (optional) – Install additional Linux packages (space-separated list)
|
||||
- `PACKAGES_UPDATE` (optional) – Set `true` to update Linux packages on first start
|
||||
- `PERMISSION_CHECK` (optional, default: true) – Set "false" to skip permission checks/corrections (use at your own risk)
|
||||
- `SETGID` (default: 1000) – Set the GID for the iobroker user (to match a group on the host)
|
||||
- `SETUID` (default: 1000) – Set the UID for the iobroker user (to match a user on the host)
|
||||
- `TZ` (optional, default: Europe/Berlin) – Set the timezone (any valid Linux timezone)
|
||||
- `USBDEVICES` (optional) – Set permissions for mounted devices (e.g. `/dev/ttyACM0`, separate multiple devices with ";")
|
||||
|
||||
## Notes about Docker networks
|
||||
## 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.
|
||||
The above examples use Docker's default bridge network. In many cases, it is better to use a user-defined bridge network.
|
||||
See [Docker docs: bridge differences](https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge).
|
||||
|
||||
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.
|
||||
A bridge network works for most adapters if you map all required ports.
|
||||
However, some adapters require [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for device discovery.
|
||||
In these cases, consider using [host](https://docs.docker.com/network/host/) or [MACVLAN](https://docs.docker.com/network/macvlan/) networking.
|
||||
|
||||
For more information about networking with Docker please refer to the [official Docker docs](https://docs.docker.com/network/).
|
||||
For more information, see the [official Docker networking documentation](https://docs.docker.com/network/).
|
||||
|
||||
# Support the Project
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/releases)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/actions/workflows/build-debian12-latest_sep.yml)
|
||||
[](https://github.com/buanet/ioBroker.docker/issues)
|
||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
||||
@@ -13,8 +13,8 @@
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)
|
||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||
[](https://github.com/buanet/ioBroker.docker)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/network)
|
||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||
[](https://paypal.me/buanet)
|
||||
|
||||
@@ -36,42 +36,36 @@ New major image versions (e.g. v6, v7, v8) usually include a new major version o
|
||||
|
||||
It is highly recommended not to use the `latest` tag for production, especially when using any kind of automated update procedure like watchtower. Please use the `latest-v[major_version]` tag instead.
|
||||
|
||||
### Node 18 versions
|
||||
* [`v9.1.0`](https://github.com/buanet/ioBroker.docker/blob/v9.1.0/debian12/Dockerfile), [`latest-v9`](https://github.com/buanet/ioBroker.docker/blob/v9.1.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v9.1.0/debian12/Dockerfile)
|
||||
* [`v9.0.1`](https://github.com/buanet/ioBroker.docker/blob/v9.0.1/debian12/Dockerfile)
|
||||
* [`v9.0.0`](https://github.com/buanet/ioBroker.docker/blob/v9.0.0/debian12/Dockerfile)
|
||||
* [`v8.1.0`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile), [`latest-v8`](https://github.com/buanet/ioBroker.docker/blob/v8.1.0/debian/node18/Dockerfile),
|
||||
* [`v8.0.1`](https://github.com/buanet/ioBroker.docker/blob/v8.0.1/debian/node18/Dockerfile)
|
||||
* [`v8.0.0`](https://github.com/buanet/ioBroker.docker/blob/v8.0.0/debian/node18/Dockerfile)
|
||||
### Node 22 versions
|
||||
* [`v11.0.0`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest-v11`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v11.0.0/debian12/Dockerfile)
|
||||
|
||||
### Node 16 versions
|
||||
* [`v7.2.0`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile), [`latest-v7`](https://github.com/buanet/ioBroker.docker/blob/v7.2.0/debian/node16/Dockerfile)
|
||||
* [`v7.1.2`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile), [`v7.1.2-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.1.2/debian/node16/Dockerfile)
|
||||
* [`v7.0.1`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-amd64`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm32v7`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile), [`v7.0.1-arm64v8`](https://github.com/buanet/ioBroker.docker/blob/v7.0.1/debian/node16/Dockerfile)
|
||||
### Node 20 versions
|
||||
* [`v10.0.0`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest-v10`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile), [`latest`](https://github.com/buanet/ioBroker.docker/blob/v10.0.0/debian12/Dockerfile)
|
||||
|
||||
# What is ioBroker?
|
||||
|
||||
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>
|
||||
IoBroker is an 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 visualizations.<br>
|
||||
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||
|
||||
# How to use this image?
|
||||
|
||||
## Running from command-line
|
||||
## Quick Start (for testing)
|
||||
|
||||
For taking a first look at iobroker on docker it would be enough to simply run the following basic docker run command:
|
||||
To quickly try out ioBroker in Docker, simply run:
|
||||
|
||||
```
|
||||
docker run -p 8081:8081 --name iobroker -h iobroker buanet/iobroker
|
||||
```
|
||||
|
||||
## Running with docker-compose
|
||||
**Note:**
|
||||
All data and settings will be lost when the container is removed or recreated. For production use, always use persistent storage (see below).
|
||||
|
||||
When using docker-compose define the iobroker service like this:
|
||||
## Production Setup with Docker Compose
|
||||
|
||||
```
|
||||
version: '2'
|
||||
For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
iobroker:
|
||||
container_name: iobroker
|
||||
@@ -80,72 +74,84 @@ services:
|
||||
restart: always
|
||||
ports:
|
||||
- "8081:8081"
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
environment:
|
||||
- TZ=Europe/Berlin
|
||||
|
||||
volumes:
|
||||
iobrokerdata:
|
||||
```
|
||||
|
||||
## Persistent data
|
||||
**Tip:**
|
||||
Depending on your adapters, you may need to expose additional ports or use a different network mode (e.g. `network_mode: host`).
|
||||
See the [Networking section](#notes-about-docker-networks) for more details.
|
||||
|
||||
To make your ioBroker configuration persistent it is recommended to mount a volume or path to `/opt/iobroker`.
|
||||
## Persistent Data
|
||||
|
||||
On command-line add
|
||||
To keep your ioBroker configuration and data, always mount a volume or path to `/opt/iobroker`:
|
||||
|
||||
**Command-line:**
|
||||
```
|
||||
-v iobrokerdata:/opt/iobroker
|
||||
```
|
||||
On docker-compose add
|
||||
```
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
**Docker Compose:**
|
||||
```yaml
|
||||
volumes:
|
||||
- iobrokerdata:/opt/iobroker
|
||||
```
|
||||
|
||||
## Configuration via environment variables
|
||||
## Configuration via Environment Variables
|
||||
|
||||
You could use environment variables to auto configure your ioBroker container on startup.
|
||||
You can use environment variables to automatically configure your ioBroker container at startup.
|
||||
|
||||
### Configure ioBroker application:
|
||||
### Application Configuration
|
||||
|
||||
* `IOB_ADMINPORT` (optional, default: 8081) Set ioBroker adminport on startup
|
||||
* `IOB_BACKITUP_EXTDB` (optional) Set `true` for backing up external databases in ioBroker backitup adapter (Make sure your have read the [docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
* `IOB_MULTIHOST` (optional) Set "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
||||
* `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) Set type of ioBroker objects db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_OBJECTSDB_PASS` (optional) Set authentication for Redis db connection
|
||||
* `IOB_OBJECTSDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel CLuster db
|
||||
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
||||
* `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) Set host for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
||||
* `IOB_STATESDB_PASS` (optional, default: 9000) Set authentication for Redis db connection
|
||||
* `IOB_STATESDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel cluster db
|
||||
- `IOB_ADMINPORT` (optional, default: 8081) – Set ioBroker admin port on startup
|
||||
- `IOB_BACKITUP_EXTDB` (optional) – Set `true` to enable external database backup in the Backitup adapter ([see docs](https://docs.buanet.de/iobroker-docker-image/docs/#backup))
|
||||
- `IOB_MULTIHOST` (optional) – Set to "master" or "slave" for multihost support (requires additional config for objectsdb and statesdb)
|
||||
- `IOB_OBJECTSDB_TYPE` (optional, default: jsonl) – Type of objects DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_OBJECTSDB_HOST` (optional, default: 127.0.0.1) – Host for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PORT` (optional, default: 9001) – Port for objects DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_OBJECTSDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_OBJECTSDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
- `IOB_STATESDB_TYPE` (optional, default: jsonl) – Type of states DB: "jsonl", "file" (deprecated), or "redis"
|
||||
- `IOB_STATESDB_HOST` (optional, default: 127.0.0.1) – Host for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PORT` (optional, default: 9000) – Port for states DB (comma-separated for Redis Sentinel)
|
||||
- `IOB_STATESDB_PASS` (optional) – Password for Redis DB
|
||||
- `IOB_STATESDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||
|
||||
### Activate special features:
|
||||
### Special Features
|
||||
|
||||
* `AVAHI` (optional) Set `true` to install and activate avahi-daemon for supporting yahka adapter
|
||||
- `AVAHI` (optional) – Set `true` to install and activate avahi-daemon (for yahka adapter support)
|
||||
|
||||
### Configure environment:
|
||||
### Environment Configuration
|
||||
|
||||
* `DEBUG` (optional) Set `true` to get extended logging messages on container startup
|
||||
* `LANG` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `LANGUAGE` (optional, default: de_DE:de) The following locales are pre-generated: de_DE:de, en_US:en
|
||||
* `LC_ALL` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
* `OFFLINE_MODE` (optional) Set `true` if your container has no or limited internet connection
|
||||
* `PACKAGES` (optional) Install additional Linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
||||
* `PACKAGES_UPDATE` (optional) Set `true` if you want to apply Linux package updates at the first start of a new container.
|
||||
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
||||
* `SETGID` (default: 1000) In some cases it might be useful to specify the gid of the containers iobroker user to match an existing group on the docker host
|
||||
* `SETUID` (default: 1000) In some cases it might be useful to specify the uid of the containers iobroker user to match an existing user on the docker host
|
||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
|
||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like `/dev/ttyACM0` (inside the container), for more than one device separate with ";"
|
||||
- `DEBUG` (optional) – Set `true` for extended logging on container startup
|
||||
- `LANG` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `LANGUAGE` (optional, default: de_DE:de) – Pre-generated: de_DE:de, en_US:en
|
||||
- `LC_ALL` (optional, default: de_DE.UTF-8) – Pre-generated: de_DE.UTF-8, en_US.UTF-8
|
||||
- `OFFLINE_MODE` (optional) – Set `true` if your container has no or limited internet connection
|
||||
- `PACKAGES` (optional) – Install additional Linux packages (space-separated list)
|
||||
- `PACKAGES_UPDATE` (optional) – Set `true` to update Linux packages on first start
|
||||
- `PERMISSION_CHECK` (optional, default: true) – Set "false" to skip permission checks/corrections (use at your own risk)
|
||||
- `SETGID` (default: 1000) – Set the GID for the iobroker user (to match a group on the host)
|
||||
- `SETUID` (default: 1000) – Set the UID for the iobroker user (to match a user on the host)
|
||||
- `TZ` (optional, default: Europe/Berlin) – Set the timezone (any valid Linux timezone)
|
||||
- `USBDEVICES` (optional) – Set permissions for mounted devices (e.g. `/dev/ttyACM0`, separate multiple devices with ";")
|
||||
|
||||
## Notes about Docker networks
|
||||
## 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.
|
||||
The above examples use Docker's default bridge network. In many cases, it is better to use a user-defined bridge network.
|
||||
See [Docker docs: bridge differences](https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge).
|
||||
|
||||
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.
|
||||
A bridge network works for most adapters if you map all required ports.
|
||||
However, some adapters require [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for device discovery.
|
||||
In these cases, consider using [host](https://docs.docker.com/network/host/) or [MACVLAN](https://docs.docker.com/network/macvlan/) networking.
|
||||
|
||||
For more information about networking with Docker please refer to the [official Docker docs](https://docs.docker.com/network/).
|
||||
For more information, see the [official Docker networking documentation](https://docs.docker.com/network/).
|
||||
|
||||
# Support the Project
|
||||
|
||||
If you like what you see please leave us stars and likes on our repos and join our growing community.
|
||||
If you like what you see please leave us stars and likes on our repos and join our growing community.<br>
|
||||
See you soon. :)
|
||||
|
||||
Reference in New Issue
Block a user