mirror of
https://github.com/buanet/ioBroker.docker.git
synced 2025-12-17 18:39:01 +02:00
Compare commits
431 Commits
| 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 | ||
|
|
f0a8644a7d | ||
|
|
f78a2be83f | ||
|
|
d9b6141b80 | ||
|
|
28f5e54109 | ||
|
|
c933164f41 | ||
|
|
0e1ff982cf | ||
|
|
9218a316bb | ||
|
|
1891d34934 | ||
|
|
40f1fa1fd7 | ||
|
|
b5bd5ff529 | ||
|
|
4d1b79ee53 | ||
|
|
9252643fe7 | ||
|
|
776e5aa36d | ||
|
|
c5194b9701 | ||
|
|
bef837b476 | ||
|
|
6a2e6498ed | ||
|
|
801413e579 | ||
|
|
0acf0995ea | ||
|
|
b4c9e9bca1 | ||
|
|
6858374b83 | ||
|
|
3f67dbc162 | ||
|
|
5247639a66 | ||
|
|
aaeb0119f4 | ||
|
|
004b5757ea | ||
|
|
b2895098bc | ||
|
|
13cb29bed7 | ||
|
|
dc9908c3ba | ||
|
|
320a92dff4 | ||
|
|
3bc1952219 | ||
|
|
c6b49e4979 | ||
|
|
17db723eb7 | ||
|
|
1dc2a7e57e | ||
|
|
e0f403c62e | ||
|
|
c9a4a11265 | ||
|
|
7249d9e585 | ||
|
|
b7465c5665 | ||
|
|
bfe581df36 | ||
|
|
c1b43166d1 | ||
|
|
283776f511 | ||
|
|
731a01339c | ||
|
|
f575c66883 | ||
|
|
8f1fe5b986 | ||
|
|
beead83dbf | ||
|
|
026d050136 | ||
|
|
5835a0e835 | ||
|
|
ca43f24804 | ||
|
|
e171da0c4e | ||
|
|
c6a0a789f0 | ||
|
|
4fee9bf397 | ||
|
|
74e3789edd | ||
|
|
2b3421bb7a | ||
|
|
7f6bc5052f | ||
|
|
4c39600957 | ||
|
|
abb803a4ff | ||
|
|
5ca414109b | ||
|
|
05347a1eda | ||
|
|
89cd94b0b8 | ||
|
|
5c2a6e42dd | ||
|
|
649fd1e300 | ||
|
|
bb12dd4b7b | ||
|
|
21b82c4053 | ||
|
|
7f66aad03f | ||
|
|
ba1c874781 | ||
|
|
b7dd2a5ec2 | ||
|
|
222db010cc | ||
|
|
1f04cd3ab8 | ||
|
|
75e77d51e4 | ||
|
|
0a21f09e85 | ||
|
|
c6e50c9e1a | ||
|
|
6a481b9449 | ||
|
|
e24d7c5c38 | ||
|
|
3ff0cb94e3 | ||
|
|
beb310b693 | ||
|
|
2dbb5a7c76 | ||
|
|
a53b5e9ff2 | ||
|
|
c12ed1138d | ||
|
|
4924308ace | ||
|
|
04f48817a0 | ||
|
|
030ef7e7d2 | ||
|
|
f62985161f | ||
|
|
a1fff8f81c | ||
|
|
b9618d92d2 | ||
|
|
16c741733f | ||
|
|
6538b3ff99 | ||
|
|
fd504446b3 | ||
|
|
9a59347e64 | ||
|
|
e2ca6793ff | ||
|
|
c86a608537 | ||
|
|
1ca205fd4f | ||
|
|
6c06893dfe | ||
|
|
955ce164b4 | ||
|
|
3cf0fc99f0 | ||
|
|
06f65eac95 | ||
|
|
3143c9f8a8 | ||
|
|
38fbe16798 | ||
|
|
e5b55180b8 | ||
|
|
1404e8b0db | ||
|
|
0cbfd67f5a | ||
|
|
014f6e5fc8 | ||
|
|
4c83128e84 | ||
|
|
d1bbbfff58 | ||
|
|
908d242120 | ||
|
|
0aa1890b3a | ||
|
|
9f4eb7feaa | ||
|
|
7e2601b48f | ||
|
|
11e30fa638 | ||
|
|
e5956c6faf | ||
|
|
feb02a7a33 | ||
|
|
3f3cfdb077 | ||
|
|
3ca8dcde8a | ||
|
|
28928bf381 | ||
|
|
55e5bad454 | ||
|
|
3a8e38b3ee | ||
|
|
fa9e09ed1b | ||
|
|
90fe13108c | ||
|
|
5c97b2a041 | ||
|
|
05b72b1cd7 | ||
|
|
1c7d5ca328 | ||
|
|
4fc3016aab | ||
|
|
c6b0d307b5 | ||
|
|
59ffff608a | ||
|
|
6c34c0a081 | ||
|
|
92821ab262 | ||
|
|
d78cf70d11 | ||
|
|
94edda4a64 | ||
|
|
6c68940076 | ||
|
|
2eb7f4e71f | ||
|
|
b626063647 | ||
|
|
cef5ed1ef5 | ||
|
|
68b285d55f | ||
|
|
e1910d6f3b | ||
|
|
bc483cc5f0 | ||
|
|
bf87667fc0 | ||
|
|
375d192c7c | ||
|
|
ac40e5a07a | ||
|
|
ce37c61c60 | ||
|
|
726ef79216 | ||
|
|
5d683dcbb6 | ||
|
|
4738e035b5 | ||
|
|
e03c374df1 | ||
|
|
a37ddf14ec | ||
|
|
814cfae657 | ||
|
|
10de4b1a55 | ||
|
|
760a36f72a | ||
|
|
55c5b44537 | ||
|
|
317264f849 | ||
|
|
4614b8c41a | ||
|
|
d4469b80d5 | ||
|
|
24d5f3c9ed | ||
|
|
f01167d513 | ||
|
|
f27a29a325 | ||
|
|
a24628e306 | ||
|
|
3553ce3a65 | ||
|
|
75f6496ffe | ||
|
|
f7de2fbad2 | ||
|
|
b56d2fad26 | ||
|
|
51306ed80d | ||
|
|
5d382d082b | ||
|
|
6ec036a577 | ||
|
|
4d86b980f9 | ||
|
|
582d604b8b | ||
|
|
483139b417 | ||
|
|
aa86db5724 | ||
|
|
7a77f18fb8 | ||
|
|
6dd6cb5c20 | ||
|
|
77831a2edd | ||
|
|
88979d48b1 | ||
|
|
e305053c26 | ||
|
|
3e1c1fa103 | ||
|
|
c6781e19e6 | ||
|
|
9eacde484a | ||
|
|
9ba748467e | ||
|
|
9da9e91453 | ||
|
|
b80e5cc26b | ||
|
|
3b3dc39bc8 | ||
|
|
117f57aa3e | ||
|
|
49f9f9ad8b | ||
|
|
36ac44fd5a | ||
|
|
3e9670b197 | ||
|
|
f3f5df4819 | ||
|
|
6bbdd0572a | ||
|
|
0c27976158 | ||
|
|
8ed0078dea | ||
|
|
a374fee273 | ||
|
|
b0493be646 | ||
|
|
c614aeb863 | ||
|
|
3117d590b6 | ||
|
|
0de9d77859 | ||
|
|
3674f2f594 | ||
|
|
63974a3780 | ||
|
|
89a52b8eb3 | ||
|
|
4adafbdb00 | ||
|
|
837064f86b | ||
|
|
45cae5a781 | ||
|
|
b1b779ac5d | ||
|
|
63a3491be4 | ||
|
|
f2aa915f71 | ||
|
|
2179df0893 | ||
|
|
e5bb412719 | ||
|
|
d464910e62 | ||
|
|
b794e0b7d4 | ||
|
|
d59d6f5a77 | ||
|
|
a8fc42f93b | ||
|
|
50f2f9c5d1 | ||
|
|
165b3595c1 | ||
|
|
e6662f78c5 | ||
|
|
7779f985d2 | ||
|
|
a0ba10a02f | ||
|
|
96f8fe6a84 | ||
|
|
57d1dd3bb0 | ||
|
|
7027d3b3b9 | ||
|
|
9ee0738a23 | ||
|
|
40d22d0540 | ||
|
|
55c3fc5951 | ||
|
|
65ee398753 | ||
|
|
0dd20773ec | ||
|
|
58f4ac9d47 | ||
|
|
2da5640f9f | ||
|
|
e228229ec3 | ||
|
|
60b2ab1b56 | ||
|
|
4c32a3fc67 | ||
|
|
82c98eb906 | ||
|
|
af51286954 | ||
|
|
71ece920f0 | ||
|
|
82a88370d6 | ||
|
|
21cf38611c | ||
|
|
ca11192265 | ||
|
|
2907a44f46 | ||
|
|
4cb4aa8cce | ||
|
|
bbe6c2763e | ||
|
|
c4e8b87bc1 | ||
|
|
989fe8b03b | ||
|
|
9b384a38b5 | ||
|
|
6832057596 | ||
|
|
bbf834c218 | ||
|
|
24b76d4af7 | ||
|
|
9aab0af6bd | ||
|
|
9fc074611f |
16
.github/ISSUE_TEMPLATE/config.yml
vendored
16
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,14 +1,14 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Did you read the docs?
|
||||
- name: Did you read the docs? / Hast du die Doku gelesen?
|
||||
url: https://docs.buanet.de/iobroker-docker-image/docs/
|
||||
about: Please make sure you read the docs before submitting any issues.
|
||||
- name: Questions?
|
||||
about: Please make sure you read the docs before submitting any issues. / Bitte stelle sicher, dass du die Dokumentation gelesen hast bevor du einen Fehler meldest.
|
||||
- name: Questions? / Fragen?
|
||||
url: https://github.com/buanet/ioBroker.docker/discussions
|
||||
about: Ask your questions here!
|
||||
about: Ask your questions here! / Stell deine Fragen hier!
|
||||
- name: ioBroker Community Forum
|
||||
url: https://forum.iobroker.net/
|
||||
about: Need support? Check out our ioBroker Community Forum.
|
||||
- name: ioBroker Discord channel
|
||||
url: https://discord.gg/Ne3y6fUac3
|
||||
about: Need support? Check out our ioBroker Discord channel.
|
||||
about: Need support? Check out our ioBroker Community Forum. / Du benötigst Unterstützung? Wirf einen Blick in unser ioBroker Community Forum.
|
||||
- name: ioBroker Discord Channel
|
||||
url: https://discord.gg/5jGWNKnpZ8
|
||||
about: Need support? Check out our ioBroker Discord channel. / Du benötigst Unterstützung? Wirf einen Blick in unseren ioBroker Discord Channel.
|
||||
|
||||
12
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
12
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
@@ -1,17 +1,17 @@
|
||||
name: Feature Request
|
||||
description: Request a new feature here.
|
||||
name: Feature Request / Verbesserungsvorschlag
|
||||
description: Request a new feature here. / Schlage eine Verbesserung vor.
|
||||
title: "[Feature Request]: "
|
||||
labels: "enhancement"
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to give us your feedback!
|
||||
Thanks for taking the time to give us your feedback! / Vielen Dank, dass du die Zeit nimmst uns Feedback zu geben!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Please describe your request.
|
||||
placeholder: Waht are your ideas?
|
||||
label: Description / Beschreibung
|
||||
description: Please describe your request. / Bitte beschreibe deine Anforderung.
|
||||
placeholder: What are your ideas? / Was sind deine Ideen?
|
||||
validations:
|
||||
required: true
|
||||
|
||||
18
.github/ISSUE_TEMPLATE/problem_report.yaml
vendored
18
.github/ISSUE_TEMPLATE/problem_report.yaml
vendored
@@ -1,32 +1,32 @@
|
||||
name: Problem Report
|
||||
description: Report a problem here.
|
||||
name: Problem Report / Fehlermeldung
|
||||
description: Report a problem here. / Melde Fehler hier.
|
||||
title: "[Problem]: "
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report!
|
||||
Thanks for taking the time to fill out this bug report! / Vielen Dank, dass du dir die Zeit nimmst den Fehlerreport auszufüllen!
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: Please describe your problem.
|
||||
placeholder: What happened? What did you expect?
|
||||
label: Description / Beschreibung
|
||||
description: Please describe your problem. / Bitte beschreibe dein Problem.
|
||||
placeholder: What happened? What did you expect? / Was ist passiert? Was hast du erwartet?
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Image version
|
||||
description: Which image version do you use?
|
||||
description: Which image version do you use? / Welche Version des Images verwendest du?
|
||||
placeholder: v1.2.3
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Docker logs
|
||||
description: Please provide the full Docker log output from your Docker container startup.
|
||||
label: Docker logs / Docker Protokoll
|
||||
description: Please provide the full Docker log output from your Docker container startup. / Bitte stelle das komplette Docker Protokoll vom Start des Containers zur Verfügung.
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
|
||||
2
.github/dependencies/.admin-version
vendored
2
.github/dependencies/.admin-version
vendored
@@ -1 +1 @@
|
||||
6.3.5
|
||||
7.6.17
|
||||
|
||||
2
.github/dependencies/.backitup-version
vendored
2
.github/dependencies/.backitup-version
vendored
@@ -1 +1 @@
|
||||
2.6.23
|
||||
3.3.5
|
||||
|
||||
2
.github/dependencies/.discovery-version
vendored
2
.github/dependencies/.discovery-version
vendored
@@ -1 +1 @@
|
||||
3.1.0
|
||||
5.0.0
|
||||
|
||||
2
.github/dependencies/.js-controller-version
vendored
2
.github/dependencies/.js-controller-version
vendored
@@ -1 +1 @@
|
||||
4.0.24
|
||||
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
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
# Github action to build Docker image from beta branch (tag: beta)
|
||||
name: Build debian beta-node20
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [prereleased]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-beta-node20-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetching latest prerelease tag
|
||||
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Fetching version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node20/Dockerfile > ./debian/node20/Dockerfile.tmp
|
||||
mv -f ./debian/node20/Dockerfile.tmp ./debian/node20/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build Docker image (node20)
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node20/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:beta-node20,
|
||||
buanet/iobroker:${{ env.version }}-node20,
|
||||
ghcr.io/buanet/iobroker:beta-node20,
|
||||
ghcr.io/buanet/iobroker:${{ env.version }}-node20
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
- name: Delete untagged images from GitHub packages
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
97
.github/workflows/build-debian-image-beta.yml
vendored
97
.github/workflows/build-debian-image-beta.yml
vendored
@@ -1,97 +0,0 @@
|
||||
# Github action to build Docker image from beta branch (tag: beta)
|
||||
name: Build debian beta
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [prereleased]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-beta-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetching latest prerelease tag
|
||||
run: echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Fetching version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
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)
|
||||
|
||||
- name: Delete untagged images from GitHub packages
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
@@ -1,89 +0,0 @@
|
||||
# Github action to build Docker image from dev branch (tag: dev)
|
||||
name: Build debian dev-node20
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-dev-node20-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Fetch version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node20/Dockerfile > ./debian/node20/Dockerfile.tmp
|
||||
mv -f ./debian/node20/Dockerfile.tmp ./debian/node20/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build Docker image (node20)
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node20/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:dev-node20,
|
||||
ghcr.io/buanet/iobroker:dev-node20
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
- name: Delete untagged images from GitHub Container Registry
|
||||
uses: actions/github-script@v6.4.1
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
89
.github/workflows/build-debian-image-dev.yml
vendored
89
.github/workflows/build-debian-image-dev.yml
vendored
@@ -1,89 +0,0 @@
|
||||
# Github action to build Docker image from dev branch (tag: dev)
|
||||
name: Build debian dev
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-dev-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
|
||||
- name: Fetch version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION-dev/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.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@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: |
|
||||
linux/amd64
|
||||
linux/arm/v7
|
||||
linux/arm64/v8
|
||||
tags: |
|
||||
buanet/iobroker:dev,
|
||||
ghcr.io/buanet/iobroker:dev
|
||||
provenance: false
|
||||
outputs: type=image,name=target,annotation-index.org.opencontainers.image.description=Official Docker image for ioBroker smarthome software (https://www.iobroker.net)
|
||||
|
||||
- name: Delete untagged images from GitHub Container Registry
|
||||
uses: actions/github-script@v6.4.1
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
@@ -1,68 +0,0 @@
|
||||
# Github action to build Docker image from main branch for iobroker/iobroker (tag: latest)
|
||||
name: Build debian latest (iobroker)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-latest-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetching 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@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Fetching version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
|
||||
- name: Login to DockerHub (iobroker)
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
tags: |
|
||||
iobroker/iobroker:latest,
|
||||
iobroker/iobroker:${{ env.majorversion }},
|
||||
iobroker/iobroker:${{ env.version }}
|
||||
|
||||
97
.github/workflows/build-debian-image-latest.yml
vendored
97
.github/workflows/build-debian-image-latest.yml
vendored
@@ -1,97 +0,0 @@
|
||||
# Github action to build Docker image from main branch (tag: latest)
|
||||
name: Build debian latest (buanet)
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-latest-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Fetching 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@v3.5.3
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
ref: ${{ env.RELEASE_TAG }}
|
||||
|
||||
- name: Fetching version tag and date
|
||||
id: version
|
||||
run: |
|
||||
VERSION="$(cat .VERSION)"
|
||||
MAJORVERSION="$(cat .VERSION | cut -c 1-2 | sed -r 's#^(.{0})#\1latest-#')"
|
||||
DATI="$(date --rfc-3339=seconds | sed 's/ /T/')"
|
||||
echo "This is the Version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_ENV
|
||||
echo "This is the Major Version: $MAJORVERSION"
|
||||
echo "majorversion=$MAJORVERSION" >> $GITHUB_ENV
|
||||
echo "This is the Buildnumber/Timestamp: $DATI"
|
||||
echo "dati=$DATI" >> $GITHUB_ENV
|
||||
# startup script
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${BUILD}/$DATI/" ./debian/scripts/iobroker_startup.sh > ./debian/scripts/iobroker_startup.tmp
|
||||
mv -f ./debian/scripts/iobroker_startup.tmp ./debian/scripts/iobroker_startup.sh
|
||||
# amd64
|
||||
sed -e "s/\${VERSION}/$VERSION/" -e "s/\${DATI}/$DATI/" ./debian/node18/Dockerfile > ./debian/node18/Dockerfile.tmp
|
||||
mv -f ./debian/node18/Dockerfile.tmp ./debian/node18/Dockerfile
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.2.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v2.9.1
|
||||
- name: Login to DockerHub (buanet)
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASS }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@v2.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.PACKAGES_USER }}
|
||||
password: ${{ secrets.PACKAGES_PASS }}
|
||||
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v4.1.1
|
||||
with:
|
||||
context: ./debian
|
||||
file: ./debian/node18/Dockerfile
|
||||
#provenance: false
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
|
||||
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 }}
|
||||
|
||||
- name: Delete untagged images from GitHub packages
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
github-token: ${{ secrets.PACKAGES_PASS }}
|
||||
script: |
|
||||
const response = await github.request("GET /users/${{ env.OWNER }}/packages/container/${{ env.PACKAGE_NAME }}/versions",
|
||||
{ per_page: ${{ env.PER_PAGE }}
|
||||
});
|
||||
for(version of response.data) {
|
||||
if (version.metadata.container.tags.length == 0) {
|
||||
console.log("delete " + version.id)
|
||||
const deleteResponse = await github.request("DELETE /user/packages/container/${{ env.PACKAGE_NAME }}/versions/" + version.id, { });
|
||||
console.log("status " + deleteResponse.status)
|
||||
}
|
||||
}
|
||||
env:
|
||||
OWNER: buanet
|
||||
PACKAGE_NAME: iobroker
|
||||
PER_PAGE: 100
|
||||
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 }}
|
||||
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 }}
|
||||
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@v3.5.3
|
||||
- uses: actions/checkout@v4.2.2
|
||||
|
||||
- name: Update Docker Hub Readme (buanet)
|
||||
uses: peter-evans/dockerhub-description@v3.4.2
|
||||
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@v3.4.2
|
||||
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
|
||||
@@ -1,4 +1,4 @@
|
||||
name: Check ioBroker versions
|
||||
name: Version Checks
|
||||
|
||||
on:
|
||||
schedule:
|
||||
@@ -10,12 +10,19 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v3.5.3
|
||||
uses: actions/checkout@v4.2.2
|
||||
with:
|
||||
repository: 'buanet/ioBroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
|
||||
- name: Fetch ioBroker versions
|
||||
- name: Docker baseimage check
|
||||
id: baseimage-check
|
||||
uses: lucacome/docker-image-update-checker@v2.0.0
|
||||
with:
|
||||
base-image: debian:bookworm-slim
|
||||
image: buanet/iobroker:latest
|
||||
|
||||
- name: Fetch ioBroker and nodejs versions
|
||||
run: |
|
||||
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||
jq -r '."js-controller".version' > .github/dependencies/.js-controller-version
|
||||
@@ -29,13 +36,13 @@ 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
|
||||
id: git-check
|
||||
run: echo ::set-output name=modified::$([ -z "`git status --porcelain`" ] && echo "false" || echo "true")
|
||||
run: echo "modified=$([ -z "`git status --porcelain`" ] && echo "false" || echo "true")" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Commit latest release version
|
||||
if: steps.git-check.outputs.modified == 'true'
|
||||
@@ -45,18 +52,16 @@ jobs:
|
||||
git commit -am "new ioBroker versions"
|
||||
git push
|
||||
|
||||
- name: Trigger build debian latest (buanet)
|
||||
if: steps.git-check.outputs.modified == 'true'
|
||||
uses: benc-uk/workflow-dispatch@v1.2
|
||||
with:
|
||||
workflow: Build debian latest (buanet)
|
||||
repo: buanet/ioBroker.docker
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
- 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 latest (iobroker)
|
||||
if: steps.git-check.outputs.modified == 'true'
|
||||
- name: Trigger Build Debian 12 Image (latest)
|
||||
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 latest (iobroker)
|
||||
repo: buanet/ioBroker.docker
|
||||
ref: 'main'
|
||||
workflow: 'Build Debian 12 Image (latest)'
|
||||
repo: 'buanet/iobroker.docker'
|
||||
token: ${{ secrets.ACTIONS_PAT }}
|
||||
79
CHANGELOG.md
79
CHANGELOG.md
@@ -1,5 +1,78 @@
|
||||
## Changelog
|
||||
|
||||
### 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
|
||||
|
||||
### v9.1.1 (24.01.2024)
|
||||
* fix node js setup
|
||||
|
||||
### v9.1.0 (19.01.2024)
|
||||
* update docs and ci
|
||||
* v9.1.0-beta.4 (08.01.2024)
|
||||
* dropping arm/v7 support (temporary)
|
||||
* add trap for debugging mode ([#421](https://github.com/buanet/ioBroker.docker/issues/421))
|
||||
* fix ownership of userscripts ([#423 by @EugenMayer](https://github.com/buanet/ioBroker.docker/pull/423))
|
||||
* add strict mode to healthcheck.sh ([#424 by @EugenMayer](https://github.com/buanet/ioBroker.docker/pull/424))
|
||||
* fixes for ci process and dockerfile
|
||||
* remove deprecated files from repo
|
||||
* v9.1.0-beta.3 (23.11.2023)
|
||||
* add --force to restore in maintenance script
|
||||
* improve shebang in scripts for downgrade and portability
|
||||
* v9.1.0-beta.2 (06.11.2023)
|
||||
* enhance logging/ fix typos
|
||||
* add env PACKAGES_UPDATE and remove automatic package updates on first container start
|
||||
* improve setuid/setgid handling during startup ([#397](https://github.com/buanet/ioBroker.docker/issues/397))
|
||||
* move maintenance script registration to dockerfile ([#390](https://github.com/buanet/ioBroker.docker/issues/390))
|
||||
* v9.1.0-beta.1 (03.11.2023)
|
||||
* improve maintenance command by symlinking ([#390](https://github.com/buanet/ioBroker.docker/issues/390))
|
||||
* fix restore/ adding backup file selection ([#394](https://github.com/buanet/ioBroker.docker/issues/394))
|
||||
* fix calling iob start|stop with parameters
|
||||
* enhance logging in iobroker_startup.sh
|
||||
* add error handling for user scripts
|
||||
|
||||
### v9.0.1 (10.10.2023)
|
||||
* fix issue with avahi setup ([#384](https://github.com/buanet/ioBroker.docker/issues/384); [#385 by @z1r0](https://github.com/buanet/ioBroker.docker/pull/385))
|
||||
* add silent cleanup to setup_avahi.sh
|
||||
* add error handling for package updates/ install
|
||||
* fix calling iob in iobroker_startup.sh ([#388](https://github.com/buanet/ioBroker.docker/issues/388))
|
||||
|
||||
### v9.0.0 (09.10.2023)
|
||||
* update official docs
|
||||
* v9.0.0-beta.2 (28.09.2023)
|
||||
* fix issue with unlocking features in backitup ([#381](https://github.com/buanet/ioBroker.docker/issues/381))
|
||||
* fix issue with fresh initializing iobroker
|
||||
* v9.0.0-beta.1 (24.09.2023)
|
||||
* remove special settings script and env for zwave ([#377](https://github.com/buanet/ioBroker.docker/issues/377))
|
||||
* simplify ci/ reduce gh actions
|
||||
* ignore errors in "silent cleanup" on first start ([#369](https://github.com/buanet/ioBroker.docker/issues/369))
|
||||
* cleanup/ restructure repo
|
||||
* update nodejs setup process
|
||||
* update base image to debian 12 (bookworm)
|
||||
* improve security by avoiding root (except startup script itself)
|
||||
* restrict iobroker command line commands (start/ stop/ node fix)
|
||||
* integrate maintenance script into iobroker command
|
||||
* move container config files location
|
||||
|
||||
### v8.1.0 (15.08.2023)
|
||||
* repo cleanup
|
||||
* v8.1.0-beta.4 (29.07.2023)
|
||||
@@ -136,7 +209,7 @@
|
||||
### v5.1.0 (2020-11-05)
|
||||
* v5.0.2-beta (2020-07-28)
|
||||
* added docker tag for major version latest
|
||||
* extend readme.md docu
|
||||
* extend readme.md docs
|
||||
* added maintenance script
|
||||
* added container health check
|
||||
* fixed configuration procedure and logging for objects and states db setup
|
||||
@@ -185,7 +258,7 @@
|
||||
* v4.0.1-beta (2019-11-25)
|
||||
* added env for iobroker admin port
|
||||
* added env for usb-devices (setting permissions)
|
||||
* updateing prerequisites for iobroker installation
|
||||
* updating prerequisites for iobroker installation
|
||||
* some small code fixes
|
||||
|
||||
### v4.0.0 (2019-10-25)
|
||||
@@ -280,7 +353,7 @@
|
||||
* added git package
|
||||
|
||||
### v0.1.0 (2017-03-08)
|
||||
* moved avahi-start.sh to seperate directory
|
||||
* moved avahi-start.sh to separate directory
|
||||
* fixed timezone issue (sets now timezone to Europe/Berlin)
|
||||
|
||||
### v0.0.2 (2017-03-06)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2022 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
|
||||
|
||||
17
README.md
17
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-debian-image-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?
|
||||
|
||||
@@ -47,22 +47,21 @@ You can pull the Docker image from:
|
||||
|
||||
### Where can I get help?
|
||||
|
||||
If you have any questions or need help please visit the ioBroker community:
|
||||
If you have any questions or need help take a look at the [Discussions](https://github.com/buanet/ioBroker.docker/discussions) or join the ioBroker community:
|
||||
* [ioBroker forum](https://forum.iobroker.net/)
|
||||
* [Discord channel](https://discord.gg/Ne3y6fUac3)
|
||||
* [Discord channel](https://discord.gg/5jGWNKnpZ8)
|
||||
* [Facebook group](https://www.facebook.com/groups/440499112958264/)
|
||||
* [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi)
|
||||
|
||||
### How to report an issue or request a feature?
|
||||
|
||||
If you think you found an issue let us know by opening a [GitHub issue](https://github.com/buanet/ioBroker.docker/issues). Make sure you have googled it before.
|
||||
Please do not use the issues for support questions. Not every error message is worth a new report. Use [discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure.
|
||||
If you think you found an issue let us know by opening a [GitHub Issue](https://github.com/buanet/ioBroker.docker/issues).
|
||||
Please do not use the issues for support questions. Not every error message is worth a new report. Use [Discussions](https://github.com/buanet/ioBroker.docker/discussions) if you are not sure.
|
||||
|
||||
## :eyes: Miscellaneous
|
||||
|
||||
### 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" on the [ioBroker Discord channel](https://discord.gg/Ne3y6fUac3).
|
||||
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
|
||||
|
||||
@@ -79,7 +78,7 @@ Moved to [CHANGELOG.md](CHANGELOG.md).
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017-2022 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
|
||||
|
||||
98
debian/node16/Dockerfile
vendored
98
debian/node16/Dockerfile
vendored
@@ -1,98 +0,0 @@
|
||||
FROM debian:bullseye-slim
|
||||
|
||||
LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
org.opencontainers.image.description="Officical Docker image for ioBroker smarthome software (https://www.iobroker.net)" \
|
||||
org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \
|
||||
org.opencontainers.image.authors="André Germann <info@buanet.de>" \
|
||||
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.created="${DATI}"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Install prerequisites (including node) and generating locales
|
||||
RUN apt-get update && apt-get install -y \
|
||||
apt-utils \
|
||||
cifs-utils \
|
||||
curl \
|
||||
gosu \
|
||||
iputils-ping \
|
||||
jq \
|
||||
locales \
|
||||
nfs-common \
|
||||
procps \
|
||||
python3 \
|
||||
python3-dev \
|
||||
sudo \
|
||||
tar \
|
||||
tzdata \
|
||||
udev \
|
||||
wget \
|
||||
# Install node
|
||||
&& curl -sL https://deb.nodesource.com/setup_16.x | bash \
|
||||
&& apt-get update && apt-get install -y nodejs \
|
||||
# Install node-gyp
|
||||
&& npm install -g node-gyp \
|
||||
# Generating locales
|
||||
&& sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& locale-gen
|
||||
|
||||
# Create directorys and copy scripts
|
||||
COPY scripts /opt/scripts
|
||||
COPY userscripts /opt/userscripts
|
||||
RUN chmod 777 /opt/scripts/ \
|
||||
&& chmod 777 /opt/userscripts/ \
|
||||
&& chmod +x /opt/scripts/*.sh \
|
||||
&& chmod +x /opt/userscripts/*.sh
|
||||
|
||||
# Prepare and install ioBroker
|
||||
RUN mkdir -p /opt/scripts/.docker_config/ \
|
||||
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||
&& echo $(hostname) > /opt/.firstrun \
|
||||
# Run installer
|
||||
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||
# Deleting UUID from build
|
||||
&& iobroker unsetup -y \
|
||||
# Backup initial ioBroker and userscript folder
|
||||
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
||||
# Setting up iobroker-user (shell, home dir and rights)
|
||||
&& chsh -s /bin/bash iobroker \
|
||||
&& usermod --home /opt/iobroker iobroker \
|
||||
&& usermod -u 1000 iobroker \
|
||||
&& groupmod -g 1000 iobroker \
|
||||
&& chown root:iobroker /usr/sbin/gosu \
|
||||
&& chmod +s /usr/sbin/gosu \
|
||||
# Clean up installation cache
|
||||
&& apt-get autoclean -y \
|
||||
&& apt-get autoremove \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /tmp/* /var/tmp/* \
|
||||
&& rm -rf /root/.cache/* /root/.npm/* \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setting up default ENVs
|
||||
ENV DEBIAN_FRONTEND="teletype" \
|
||||
LANG="de_DE.UTF-8" \
|
||||
LANGUAGE="de_DE:de" \
|
||||
LC_ALL="de_DE.UTF-8" \
|
||||
SETGID=1000 \
|
||||
SETUID=1000 \
|
||||
TZ="Europe/Berlin"
|
||||
|
||||
# Expose default admin ui port
|
||||
EXPOSE 8081
|
||||
|
||||
# Change work dir
|
||||
WORKDIR /opt/iobroker/
|
||||
|
||||
# Healthcheck
|
||||
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||
|
||||
# Run startup-script
|
||||
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]
|
||||
102
debian/node20/Dockerfile
vendored
102
debian/node20/Dockerfile
vendored
@@ -1,102 +0,0 @@
|
||||
FROM debian:bullseye-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)" \
|
||||
org.opencontainers.image.documentation="https://github.com/buanet/ioBroker.docker#readme" \
|
||||
org.opencontainers.image.authors="André Germann <info@buanet.de>" \
|
||||
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.created="${DATI}"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# Copy scripts
|
||||
COPY scripts /opt/scripts
|
||||
COPY userscripts /opt/userscripts
|
||||
|
||||
# Install prerequisites (including node) and generating locales
|
||||
RUN apt-get update && apt-get install -y \
|
||||
apt-utils \
|
||||
cifs-utils \
|
||||
curl \
|
||||
gosu \
|
||||
iputils-ping \
|
||||
jq \
|
||||
locales \
|
||||
nfs-common \
|
||||
procps \
|
||||
python3 \
|
||||
python3-dev \
|
||||
sudo \
|
||||
tar \
|
||||
tzdata \
|
||||
udev \
|
||||
wget \
|
||||
# Install node
|
||||
&& curl -sL https://deb.nodesource.com/setup_20.x | bash \
|
||||
&& apt-get update && apt-get install -y nodejs \
|
||||
# Install node-gyp
|
||||
&& npm install -g node-gyp \
|
||||
# Generating locales
|
||||
&& sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& locale-gen \
|
||||
# Change permissions for scripts
|
||||
&& chmod 777 /opt/scripts/ \
|
||||
&& chmod 777 /opt/userscripts/ \
|
||||
&& chmod +x /opt/scripts/*.sh \
|
||||
&& chmod +x /opt/userscripts/*.sh \
|
||||
# Prepare
|
||||
&& mkdir -p /opt/scripts/.docker_config/ \
|
||||
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||
&& echo "true" > /opt/.first_run \
|
||||
# Run installer
|
||||
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||
# Deleting UUID from build
|
||||
&& iobroker unsetup -y \
|
||||
&& echo "true" > /opt/iobroker/.fresh_install \
|
||||
# Backup initial ioBroker and userscript folder
|
||||
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
||||
# Setting up iobroker-user (shell, home dir and rights)
|
||||
&& chsh -s /bin/bash iobroker \
|
||||
&& usermod --home /opt/iobroker iobroker \
|
||||
&& usermod -u 1000 iobroker \
|
||||
&& groupmod -g 1000 iobroker \
|
||||
&& chown root:iobroker /usr/sbin/gosu \
|
||||
&& chmod +s /usr/sbin/gosu \
|
||||
# Clean up installation cache
|
||||
&& apt-get autoclean -y \
|
||||
&& apt-get autoremove \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /tmp/* /var/tmp/* \
|
||||
&& rm -rf /root/.cache/* /root/.npm/* \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Setting up default ENVs
|
||||
ENV DEBIAN_FRONTEND="teletype" \
|
||||
LANG="de_DE.UTF-8" \
|
||||
LANGUAGE="de_DE:de" \
|
||||
LC_ALL="de_DE.UTF-8" \
|
||||
SETGID=1000 \
|
||||
SETUID=1000 \
|
||||
TZ="Europe/Berlin"
|
||||
|
||||
# Expose default admin ui port
|
||||
EXPOSE 8081
|
||||
|
||||
# Change work dir
|
||||
WORKDIR /opt/iobroker/
|
||||
|
||||
# Healthcheck
|
||||
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||
|
||||
# Volumes for persistent data
|
||||
VOLUME ["/opt/iobroker"]
|
||||
|
||||
# Run startup-script
|
||||
ENTRYPOINT ["/bin/bash", "-c", "/opt/scripts/iobroker_startup.sh"]
|
||||
17
debian/scripts/setup_zwave.sh
vendored
17
debian/scripts/setup_zwave.sh
vendored
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -e /usr/local/lib64 ]
|
||||
then
|
||||
echo "[setup_zwave.sh] Openzwave is already installed. Nothing to do here."
|
||||
else
|
||||
echo -n "[setup_zwave.sh] Openzwave is NOT installed. Going to install it now... "
|
||||
cd /opt || exit
|
||||
curl -s -L -O http://old.openzwave.com/downloads/openzwave-1.6.1007.tar.gz
|
||||
tar -xf openzwave-1.6.1007.tar.gz && rm openzwave-1.6.1007.tar.gz
|
||||
cd openzwave-1.6.1007 && make > /dev/null 2>&1 && make install > /dev/null 2>&1
|
||||
ldconfig /usr/local/lib64
|
||||
cd /opt/iobroker || exit
|
||||
echo "Done."
|
||||
fi
|
||||
|
||||
exit 0
|
||||
@@ -1,4 +1,6 @@
|
||||
FROM debian:bullseye-slim
|
||||
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)" \
|
||||
@@ -6,78 +8,86 @@ LABEL org.opencontainers.image.title="Official ioBroker Docker Image" \
|
||||
org.opencontainers.image.authors="André Germann <info@buanet.de>" \
|
||||
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.source="https://github.com/buanet/ioBroker.docker" \
|
||||
org.opencontainers.image.base.name="docker.io/library/debian:bullseye-slim" \
|
||||
org.opencontainers.image.base.name="debian:bookworm-slim" \
|
||||
org.opencontainers.image.version="${VERSION}" \
|
||||
org.opencontainers.image.created="${DATI}"
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV DEBIAN_FRONTEND="noninteractive"
|
||||
|
||||
# Copy scripts
|
||||
# Copy files
|
||||
COPY scripts /opt/scripts
|
||||
COPY userscripts /opt/userscripts
|
||||
|
||||
# Install prerequisites (including node) and generating locales
|
||||
RUN apt-get update && apt-get install -y \
|
||||
# Set up ioBroker
|
||||
RUN apt-get update && apt-get upgrade -y \
|
||||
# Install prerequisites
|
||||
&& apt-get install -q -y --no-install-recommends \
|
||||
apt-utils \
|
||||
ca-certificates \
|
||||
cifs-utils \
|
||||
curl \
|
||||
gnupg \
|
||||
gosu \
|
||||
iputils-ping \
|
||||
jq \
|
||||
libatomic1 \
|
||||
locales \
|
||||
nfs-common \
|
||||
procps \
|
||||
python3 \
|
||||
python3-dev \
|
||||
sudo \
|
||||
tar \
|
||||
tzdata \
|
||||
udev \
|
||||
wget \
|
||||
# Install node
|
||||
&& curl -sL https://deb.nodesource.com/setup_18.x | bash \
|
||||
&& apt-get update && apt-get install -y nodejs \
|
||||
# Install node-gyp
|
||||
&& npm install -g node-gyp \
|
||||
# Generating locales
|
||||
&& sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||
&& locale-gen \
|
||||
# Change permissions for scripts
|
||||
&& chmod 777 /opt/scripts/ \
|
||||
&& chmod 777 /opt/userscripts/ \
|
||||
&& chmod +x /opt/scripts/*.sh \
|
||||
&& chmod +x /opt/userscripts/*.sh \
|
||||
# Prepare
|
||||
&& mkdir -p /opt/scripts/.docker_config/ \
|
||||
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
||||
# Prepare .docker_config
|
||||
&& 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 \
|
||||
&& echo "true" > /opt/.first_run \
|
||||
# Run installer
|
||||
&& curl -sL https://iobroker.net/install.sh | bash - \
|
||||
# Run iobroker installer
|
||||
&& 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 \
|
||||
&& bash install.sh \
|
||||
# Deleting UUID from build
|
||||
&& iobroker unsetup -y \
|
||||
&& echo "true" > /opt/iobroker/.fresh_install \
|
||||
# Backup initial ioBroker and userscript folder
|
||||
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
||||
# Setting up iobroker-user (shell, home dir and rights)
|
||||
# Setting up iobroker-user
|
||||
&& chsh -s /bin/bash iobroker \
|
||||
&& usermod --home /opt/iobroker iobroker \
|
||||
&& usermod -u 1000 iobroker \
|
||||
&& groupmod -g 1000 iobroker \
|
||||
&& chown root:iobroker /usr/sbin/gosu \
|
||||
&& chmod +s /usr/sbin/gosu \
|
||||
# Set permissions and ownership
|
||||
&& chown -R iobroker:iobroker /opt/scripts /opt/userscripts \
|
||||
&& chmod 755 /opt/scripts/*.sh \
|
||||
&& chmod 755 /opt/userscripts/*.sh \
|
||||
# register maintenance command
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/maintenance \
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/maint \
|
||||
&& ln -s /opt/scripts/maintenance.sh /bin/m \
|
||||
# Clean up installation cache
|
||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||
&& apt-get autoclean -y \
|
||||
&& apt-get autoremove \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /tmp/* /var/tmp/* \
|
||||
&& rm -rf /root/.cache/* /root/.npm/* \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
&& rm -rf /tmp/* /var/tmp/* /root/.cache/* /root/.npm/* /var/lib/apt/lists/*
|
||||
|
||||
# Setting up default ENVs
|
||||
ENV DEBIAN_FRONTEND="teletype" \
|
||||
# Default environment variables
|
||||
ENV BUILD="${BUILD}" \
|
||||
DEBIAN_FRONTEND="teletype" \
|
||||
LANG="de_DE.UTF-8" \
|
||||
LANGUAGE="de_DE:de" \
|
||||
LC_ALL="de_DE.UTF-8" \
|
||||
@@ -85,7 +95,7 @@ ENV DEBIAN_FRONTEND="teletype" \
|
||||
SETUID=1000 \
|
||||
TZ="Europe/Berlin"
|
||||
|
||||
# Expose default admin ui port
|
||||
# Default admin ui port
|
||||
EXPOSE 8081
|
||||
|
||||
# Change work dir
|
||||
@@ -95,7 +105,7 @@ WORKDIR /opt/iobroker/
|
||||
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||
|
||||
# Volumes for persistent data
|
||||
# Volume for persistent data
|
||||
VOLUME ["/opt/iobroker"]
|
||||
|
||||
# Run startup-script
|
||||
@@ -1,12 +1,18 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
|
||||
# Script checks health of running container
|
||||
|
||||
if [ "$(cat /opt/scripts/.docker_config/.healthcheck)" == "starting" ]
|
||||
# bash strict mode
|
||||
set -e
|
||||
|
||||
if [ "$(cat /opt/.docker_config/.healthcheck)" == "starting" ]
|
||||
then
|
||||
echo "Health status: OK - Startup script is still running."
|
||||
exit 0
|
||||
elif [ "$(cat /opt/scripts/.docker_config/.healthcheck)" == "maintenance" ]
|
||||
elif [ "$(cat /opt/.docker_config/.healthcheck)" == "maintenance" ]
|
||||
then
|
||||
echo "Health status: OK - Container is running in maintenance mode."
|
||||
exit 0
|
||||
86
debian12/scripts/iobroker.sh
Normal file
86
debian12/scripts/iobroker.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# run iob fix
|
||||
iob_fix () {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "The ioBroker fixer script is not specifically designed to run in Docker."
|
||||
echo "Although it is generally safe to use, use it at your own risk and make sure to restart your container immediately after execution!"
|
||||
|
||||
local reply
|
||||
read -rp 'Do you want to continue? [yes/no] ' reply
|
||||
if [[ "$reply" == y || "$reply" == Y || "$reply" == yes ]]; then
|
||||
: # continue
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
curl -sL https://iobroker.net/fix.sh | bash -
|
||||
else
|
||||
echo "Due to some limitations in Docker, you need to run the ioBroker fixer script as root."
|
||||
echo "Please connect as root user and try again."
|
||||
fi
|
||||
}
|
||||
|
||||
# run iob diag
|
||||
iob_diag () {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "The ioBroker diag script is not specifically designed to run in Docker."
|
||||
echo "Although it is generally safe to use, use it at your own risk."
|
||||
local reply
|
||||
read -rp 'Do you want to continue? [yes/no] ' reply
|
||||
if [[ "$reply" == y || "$reply" == Y || "$reply" == yes ]]; then
|
||||
: # continue
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
curl -sLf https://iobroker.net/diag.sh --output /home/iobroker/.diag.sh && bash /home/iobroker/.diag.sh | gosu iobroker tee /home/iobroker/iob_diag.log
|
||||
else
|
||||
echo "Due to some limitations in Docker, you need to run the ioBroker fixer script as root."
|
||||
echo "Please connect as root user and try again."
|
||||
fi
|
||||
}
|
||||
|
||||
# run iobroker maintenance script
|
||||
iob_maint() {
|
||||
shift
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
gosu iobroker bash /opt/scripts/maintenance.sh "$@"
|
||||
else
|
||||
bash /opt/scripts/maintenance.sh "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# pass parameters and run iobroker.js
|
||||
iob_run() {
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
gosu iobroker node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
|
||||
else
|
||||
node /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" = "fix" ]; then
|
||||
# call iobroker fixer
|
||||
iob_fix
|
||||
elif [ "$1" = "node fix" ]; then
|
||||
# call iobroker node fixer
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "To fix any issues with nodejs, please pull the latest version of the Docker image and recreate your container."
|
||||
elif [ "$1" = "diag" ]; then
|
||||
# call iobroker diag script
|
||||
iob_diag
|
||||
elif [ "$1" = "start" ] || [ "$1" = "stop" ] || [ "$1" = "restart" ]; then
|
||||
# block execution of iobroker start | stop | restart but pass start | stop for adapters
|
||||
if [ ! "$2" ]; then
|
||||
echo "The execution of this command is blocked as your ioBroker is running inside a Docker container!"
|
||||
echo "For more details see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/) or use the maintenance script 'maintenance --help'."
|
||||
else
|
||||
# passing all other parameters to iobroker.js but check for execution as root
|
||||
iob_run "$@"
|
||||
fi
|
||||
elif [ "$1" = "m" ] || [ "$1" = "maint" ] || [ "$1" = "maintenance" ]; then
|
||||
# call iobroker maintenance script but check for execution as root
|
||||
iob_maint "$@"
|
||||
else
|
||||
# passing all other parameters to iobroker.js but check for execution as root
|
||||
iob_run "$@"
|
||||
fi
|
||||
@@ -4,7 +4,7 @@
|
||||
set -euo pipefail
|
||||
|
||||
# Setting healthcheck status to "starting"
|
||||
echo "starting" > /opt/scripts/.docker_config/.healthcheck
|
||||
echo "starting" > /opt/.docker_config/.healthcheck
|
||||
|
||||
# Reading ENV
|
||||
set +u
|
||||
@@ -17,36 +17,42 @@ offlinemode=$OFFLINE_MODE
|
||||
objectsdbhost=$IOB_OBJECTSDB_HOST
|
||||
objectsdbport=$IOB_OBJECTSDB_PORT
|
||||
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
||||
objectsdbname=$IOB_OBJECTSDB_NAME # new for sentinel support
|
||||
objectsdbpass=$IOB_OBJECTSDB_PASS # new for auth support
|
||||
objectsdbname=$IOB_OBJECTSDB_NAME
|
||||
objectsdbpass=$IOB_OBJECTSDB_PASS
|
||||
packages=$PACKAGES
|
||||
packagesupdate=$PACKAGES_UPDATE
|
||||
permissioncheck=$PERMISSION_CHECK
|
||||
setgid=$SETGID
|
||||
setuid=$SETUID
|
||||
statesdbhost=$IOB_STATESDB_HOST
|
||||
statesdbport=$IOB_STATESDB_PORT
|
||||
statesdbtype=$IOB_STATESDB_TYPE
|
||||
statesdbname=$IOB_STATESDB_NAME # new for sentinel support
|
||||
statesdbpass=$IOB_STATESDB_PASS # new for auth support
|
||||
statesdbname=$IOB_STATESDB_NAME
|
||||
statesdbpass=$IOB_STATESDB_PASS
|
||||
usbdevices=$USBDEVICES
|
||||
zwave=$ZWAVE
|
||||
set -u
|
||||
|
||||
pkill_timeout=10 # timeout for iobroker shutdown in seconds
|
||||
|
||||
# Exit with error function
|
||||
exit_with_error() {
|
||||
echo " "
|
||||
echo "This Script will exit now."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Stop on error function
|
||||
stop_on_error() {
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
if [[ "$debug" == "true" || "$debug" == "42" ]]; then
|
||||
echo " "
|
||||
echo "[DEBUG] Debug mode prevents the container from exiting on errors."
|
||||
echo "[DEBUG] This enables you to investigate or fix your issue on the command line."
|
||||
echo "[DEBUG] If you want to stop or restart your container you have to do it manually."
|
||||
echo "[DEBUG] IoBroker is not running!"
|
||||
tail -f /dev/null
|
||||
trap 'exit_with_error' SIGTERM SIGKILL
|
||||
tail -f /dev/null & wait
|
||||
else
|
||||
echo " "
|
||||
echo "This Script will exit now."
|
||||
exit 1
|
||||
exit_with_error
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -100,16 +106,26 @@ if [[ "$statesdbname" != "" ]]; then echo -n "----- " && echo
|
||||
if [[ "$statesdbpass" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_PASS: "***")" && echo " -----"; fi
|
||||
if [[ "$offlinemode" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" OFFLINE_MODE: "$offlinemode")" && echo " -----"; fi
|
||||
if [[ "$packages" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES: "$packages")" && echo " -----"; fi
|
||||
if [[ "$packagesupdate" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES_UPDATE: "$packagesupdate")" && echo " -----"; fi
|
||||
if [[ "$permissioncheck" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PERMISSION_CHECK: "$permissioncheck")" && echo " -----"; fi
|
||||
if [[ "$setgid" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETGID: "$setgid")" && echo " -----"; fi
|
||||
if [[ "$setuid" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETUID: "$setuid")" && echo " -----"; fi
|
||||
if [[ "$usbdevices" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" USBDEVICES: "$usbdevices")" && echo " -----"; fi
|
||||
if [[ "$zwave" != "" ]]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" ZWAVE: "$zwave")" && echo " -----"; fi
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Debug logging notice
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
if [[ "$debug" == "42" ]]; then
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
echo "!!!! DON'T PANIC! !!!!"
|
||||
echo "!!!! Just grab your towel. Environment variable DEBUG is set to 42. !!!!"
|
||||
echo "!!!! What looks like the answer to everything is just a undocumented value. !!!!"
|
||||
echo "!!!! Startup script will do nothing, except keeping your container running. !!!!"
|
||||
echo "!!!! This might be useful for investigating errors during startup. !!!!"
|
||||
echo "!!!! If you did this by mistake, just remove environment variable DEBUG. !!!!"
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
stop_on_error
|
||||
elif [[ "$debug" == "true" ]]; then
|
||||
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||
echo "!!!! DEBUG LOG ACTIVE !!!!"
|
||||
echo "!!!! Environment variable DEBUG is set to true. !!!!"
|
||||
@@ -121,44 +137,41 @@ if [[ "$debug" == "true" ]]; then
|
||||
echo " "
|
||||
fi
|
||||
|
||||
|
||||
#####
|
||||
# STEP 1 - Preparing container
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 1 of 5: Preparing container -----"
|
||||
echo "----- Step 1 of 5: Preparing Container -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Actions running on first start only
|
||||
if [[ -f /opt/.first_run ]]; then
|
||||
if [[ -f /opt/.docker_config/.first_run ]]; then
|
||||
# Updating Linux packages
|
||||
if [[ "$offlinemode" = "true" ]]; then
|
||||
echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run."
|
||||
else
|
||||
bash /opt/scripts/setup_packages.sh -update
|
||||
fi
|
||||
echo " "
|
||||
elif [[ "$packagesupdate" = "true" ]]; then
|
||||
if ! bash /opt/scripts/setup_packages.sh -update; then echo "Failed."; fi
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# Installing packages from ENV
|
||||
if [[ "$packages" != "" && "$offlinemode" = "true" ]]; then
|
||||
echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation."
|
||||
elif [[ "$packages" != "" ]]; then
|
||||
echo "PACKAGES is set. Installing the following additional Linux packages: ""$packages"
|
||||
bash /opt/scripts/setup_packages.sh -install
|
||||
if ! bash /opt/scripts/setup_packages.sh -install; then echo "Failed."; fi
|
||||
fi
|
||||
echo " "
|
||||
# Register maintenance script
|
||||
echo -n "Registering maintenance script as command... "
|
||||
echo "alias maintenance='/opt/scripts/maintenance.sh'" >> /etc/bash.bashrc
|
||||
echo "alias maint='/opt/scripts/maintenance.sh'" >> /etc/bash.bashrc
|
||||
echo "alias m='/opt/scripts/maintenance.sh'" >> /etc/bash.bashrc
|
||||
echo "Done."
|
||||
else
|
||||
echo "This is not the first run of this container. Skipping first run preparation."
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# Setting UID and/ or GID
|
||||
if [[ "$setgid" != "$(cat /etc/group | grep 'iobroker:' | cut -d':' -f3)" || "$setuid" != "$(cat /etc/passwd | grep 'iobroker:' | cut -d':' -f3)" ]]; then
|
||||
if [[ "$setgid" != "$(id -u iobroker)" || "$setuid" != "$(id -g iobroker)" ]]; then
|
||||
echo "SETUID and/ or SETGID are set to custom values."
|
||||
echo -n "Changing UID to \"""$setuid""\" and GID to \"""$setgid""\"... "
|
||||
usermod -u "$setuid" iobroker
|
||||
@@ -174,7 +187,7 @@ cd /opt/iobroker
|
||||
# STEP 2 - Detecting ioBroker-Installation
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 2 of 5: Detecting ioBroker installation -----"
|
||||
echo "----- Step 2 of 5: Detecting ioBroker Installation -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
@@ -188,10 +201,10 @@ elif [[ -f /opt/iobroker/iobroker ]]; then
|
||||
elif [[ "$(ls *_backupiobroker.tar.gz 2> /dev/null | wc -l)" != "0" && "$(tar -ztvf /opt/iobroker/*_backupiobroker.tar.gz "backup/backup.json" 2> /dev/null | wc -l)" != "0" ]]; then
|
||||
echo "IoBroker backup file detected in /opt/iobroker."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Backup file name: " "$(ls *_backupiobroker.tar.gz)"; fi
|
||||
echo "Since Docker Image v8, automatic initial restore is no longer supported!"
|
||||
echo "Since Docker image v8, automatic initial restore is no longer supported!"
|
||||
echo "IoBroker will start with a fresh installation, while your backup file will be copied into the backup directory."
|
||||
echo "You will be able to restore your backup file manually by using the backitup adapter or the containers maintenance script."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo " "
|
||||
echo -n "Copying backup file and restoring initial ioBroker installation... "
|
||||
mv /opt/iobroker/*.tar.gz /opt/
|
||||
@@ -216,10 +229,20 @@ echo " "
|
||||
# STEP 3 - Checking ioBroker-Installation
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 3 of 5: Checking ioBroker installation -----"
|
||||
echo "----- Step 3 of 5: Checking ioBroker Installation -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
# Backing up and replace original iobroker executable to fix sudo bug with gosu
|
||||
if [[ -n $(cmp /opt/scripts/iobroker.sh /opt/iobroker/iobroker) ]]; then
|
||||
echo -n "Replacing ioBroker executable to fix sudo bug... "
|
||||
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
||||
cp -f /opt/scripts/iobroker.sh /opt/iobroker/iobroker
|
||||
chmod 755 /opt/iobroker/iobroker
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts"
|
||||
if [[ "$permissioncheck" == "false" ]]; then
|
||||
echo "PERMISSION_CHECK is set to false. Use this at your own risk!"
|
||||
@@ -227,18 +250,12 @@ else
|
||||
echo -n "(Re)setting permissions (This might take a while! Please be patient!)... "
|
||||
chown -R "$setuid":"$setgid" /opt/iobroker
|
||||
chown -R "$setuid":"$setgid" /opt/scripts
|
||||
chown -R "$setuid":"$setgid" /opt/userscripts
|
||||
chown -R "$setuid":"$setgid" /opt/.docker_config
|
||||
echo "Done."
|
||||
fi
|
||||
echo " "
|
||||
|
||||
# Backing up original iobroker-file and changing sudo to gosu
|
||||
echo -n "Fixing \"sudo-bug\" by replacing sudo with gosu... "
|
||||
cp -a /opt/iobroker/iobroker /opt/iobroker/iobroker.bak
|
||||
chmod 755 /opt/iobroker/iobroker
|
||||
sed -i 's/sudo -H -u/gosu/g' /opt/iobroker/iobroker
|
||||
echo "Done."
|
||||
echo " "
|
||||
|
||||
# Checking multihost and db setup
|
||||
if [[ "$multihost" == "master" || "$multihost" == "slave" ]]; then
|
||||
# multihost enabled
|
||||
@@ -298,15 +315,16 @@ elif [[ "$multihost" == "" || "$multihost" == "false" ]]; then
|
||||
else
|
||||
echo "IOB_MULTIHOST is set, but the value is not valid. Please check your configuration."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] IOB_MULTIHOST = ""$multihost"; fi
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/#environment-variables-env)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/#environment-variables-env)."
|
||||
stop_on_error
|
||||
fi
|
||||
|
||||
# if restored a fresh install, running "iob setup first" for database init (but not on slaves!), otherwise check database connection
|
||||
if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
||||
echo -n "Initializing a fresh installation of ioBroker... "
|
||||
if [[ ! -d "/opt/iobroker/log" ]]; then gosu iobroker mkdir "/opt/iobroker/log"; fi
|
||||
set +e
|
||||
bash iob setup first > /opt/iobroker/log/iob_setup_first.log 2>&1
|
||||
gosu iobroker iob setup first > /opt/iobroker/log/iob_setup_first.log 2>&1
|
||||
return=$?
|
||||
set -e
|
||||
rm -f /opt/iobroker/.fresh_install
|
||||
@@ -319,20 +337,18 @@ if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
echo -n "Checking Database connection... "
|
||||
echo -n "Checking database connection... "
|
||||
set +e
|
||||
if iob uuid &> /dev/null; then
|
||||
if gosu iobroker iob uuid &> /dev/null; then
|
||||
echo "Done."
|
||||
echo " "
|
||||
else
|
||||
errormsg=$(iob uuid 2>&1 | sed 's/^/[DEBUG] /')
|
||||
echo "Failed."
|
||||
if [[ "$debug" == "true" ]]; then
|
||||
echo "[DEBUG] Error message: "
|
||||
errormsg=$(gosu iobroker iob uuid 2>&1 | sed 's/^/[ERROR] /')
|
||||
echo "$errormsg"
|
||||
fi
|
||||
echo " "
|
||||
echo "Please check your configuration and try again."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs)."
|
||||
stop_on_error
|
||||
fi
|
||||
set -e
|
||||
@@ -345,20 +361,20 @@ if [[ "$multihost" == "slave" ]]; then
|
||||
else
|
||||
# get admin instance and hostname
|
||||
set +e
|
||||
admininstance=$(bash iobroker list instances | grep 'enabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
admininstance=$(gosu iobroker iob list instances | grep 'enabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
set -e
|
||||
if [[ "$admininstance" != "" ]]; then
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; fi
|
||||
adminhostname=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
adminhostname=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
set +e
|
||||
admininstance=$(bash iobroker list instances | grep 'disabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
admininstance=$(gosu iobroker iob list instances | grep 'disabled' | grep -m 1 -o 'system.adapter.admin..')
|
||||
set -e
|
||||
if [[ "$admininstance" != "" ]]; then
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is disabled."; fi
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; fi
|
||||
adminhostname=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
adminhostname=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="host": ")[^"]*')
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||
else
|
||||
echo "There was a problem detecting the admin instance of your iobroker."
|
||||
@@ -371,7 +387,7 @@ else
|
||||
if [[ "$adminhostname" != "" && "$adminhostname" != "$(hostname)" ]]; then
|
||||
echo "Hostname in ioBroker does not match the hostname of this container."
|
||||
echo -n "Updating hostname to \"""$(hostname)""\"... "
|
||||
bash iobroker host "$adminhostname"
|
||||
gosu iobroker iob host "$adminhostname"
|
||||
echo "Done."
|
||||
echo " "
|
||||
elif [[ "$adminhostname" = "$(hostname)" ]]; then
|
||||
@@ -390,9 +406,9 @@ if [[ "$debug" == "true" && "$multihost" != "slave" ]]; then
|
||||
echo " "
|
||||
# get information and send to array
|
||||
IFS=$'\n'
|
||||
instances_array=("$(iob list instances)")
|
||||
repos_array=("$(iob repo list)")
|
||||
updates_array=("$(iob update)")
|
||||
instances_array=("$(gosu iobroker iob list instances)")
|
||||
repos_array=("$(gosu iobroker iob repo list)")
|
||||
updates_array=("$(gosu iobroker iob update)")
|
||||
# list iob instances
|
||||
echo "[DEBUG] ##### iobroker list instances #####"
|
||||
for i in "${instances_array[@]}"
|
||||
@@ -419,23 +435,23 @@ fi
|
||||
# STEP 4 - Setting up special sessting for ioBroker-adapters
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 4 of 5: Applying special settings -----"
|
||||
echo "----- Step 4 of 5: Applying Special Settings -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
|
||||
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/)."
|
||||
echo " "
|
||||
|
||||
# Checking ENV for Adminport
|
||||
if [[ "$adminport" != "" && "$multihost" != "slave" ]]; then
|
||||
adminportold=$(bash iobroker object get "$admininstance" --pretty | grep -oP '(?<="port": )[^,]*')
|
||||
adminportold=$(gosu iobroker iob object get "$admininstance" --pretty | grep -oP '(?<="port": )[^,]*')
|
||||
admininstanceshort=$(echo "$admininstance" | grep -m 1 -o 'admin..')
|
||||
if [[ "$adminport" != "$adminportold" ]]; then
|
||||
echo "IOB_ADMINPORT is set and does not match port configured in ioBroker."
|
||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected Admin Port in ioBroker: " "$adminportold"; fi
|
||||
echo "Setting Adminport to \"""$adminport""\"... "
|
||||
bash iobroker set "$admininstanceshort" --port "$adminport"
|
||||
gosu iobroker iob set "$admininstanceshort" --port "$adminport"
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
@@ -444,7 +460,8 @@ fi
|
||||
# Checking ENV for Backitup (external database backups)
|
||||
if [[ "$backitup" == "true" ]]; then
|
||||
echo -n "IOB_BACKITUP_EXTDB is \"true\". Unlocking features..."
|
||||
echo "true" > /opt/scripts/.docker_config/.backitup
|
||||
echo "true" > /opt/.docker_config/.backitup
|
||||
echo "true" > /opt/scripts/.docker_config/.backitup # old path, needed until changed in backitup
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
@@ -460,17 +477,6 @@ elif [[ "$avahi" = "true" ]]; then
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# Checking ENV for Z-WAVE
|
||||
if [[ "$zwave" = "true" && "$offlinemode" = "true" ]]; then
|
||||
echo "ZWAVE is \"true\", but OFFLINE_MODE is also \"true\". Skipping Z-Wave setup."
|
||||
elif [[ "$zwave" = "true" ]]; then
|
||||
echo "ZWAVE is \"true\". Running setup script... "
|
||||
chmod 755 /opt/scripts/setup_zwave.sh
|
||||
bash /opt/scripts/setup_zwave.sh
|
||||
echo "Done."
|
||||
echo " "
|
||||
fi
|
||||
|
||||
# checking ENV for USBDEVICES
|
||||
if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
||||
echo "USBDEVICES is set."
|
||||
@@ -486,7 +492,7 @@ if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
||||
else
|
||||
echo "Looks like the device \"""$i""\" does not exist."
|
||||
echo "Did you mount it correctly by using the \"--device\" option?"
|
||||
echo "For more information see ioBroker Docker Image Docs (https://docs.buanet.de/iobroker-docker-image/docs/#mounting-usb-devices)."
|
||||
echo "For more information see ioBroker Docker image docs (https://docs.buanet.de/iobroker-docker-image/docs/#mounting-usb-devices)."
|
||||
stop_on_error
|
||||
fi
|
||||
done
|
||||
@@ -501,31 +507,38 @@ if [[ $(find /opt/userscripts -type f | wc -l) -lt 1 ]]; then
|
||||
chmod 755 /opt/userscripts/userscript_everystart_example.sh
|
||||
echo "Done."
|
||||
elif [[ -f /opt/userscripts/userscript_firststart.sh || -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||
if [[ -f /opt/userscripts/userscript_firststart.sh && -f /opt/.first_run ]]; then
|
||||
if [[ -f /opt/userscripts/userscript_firststart.sh && -f /opt/.docker_config/.first_run ]]; then
|
||||
echo "Userscript for first start detected and this is the first start of a new container."
|
||||
echo "Running userscript_firststart.sh... "
|
||||
chmod 755 /opt/userscripts/userscript_firststart.sh
|
||||
bash /opt/userscripts/userscript_firststart.sh
|
||||
if ! bash /opt/userscripts/userscript_firststart.sh; then
|
||||
echo "Failed."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
fi
|
||||
if [[ -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||
echo "Userscript for every start detected. Running userscript_everystart.sh... "
|
||||
chmod 755 /opt/userscripts/userscript_everystart.sh
|
||||
bash /opt/userscripts/userscript_everystart.sh
|
||||
if ! bash /opt/userscripts/userscript_everystart.sh; then
|
||||
echo "Failed."
|
||||
else
|
||||
echo "Done."
|
||||
fi
|
||||
fi
|
||||
echo " "
|
||||
fi
|
||||
|
||||
|
||||
# Removing first run an fresh install markers when exists
|
||||
if [[ -f /opt/.first_run ]]; then rm -f /opt/.first_run; fi
|
||||
if [[ -f /opt/.docker_config/.first_run ]]; then rm -f /opt/.docker_config/.first_run; fi
|
||||
if [[ -f /opt/iobroker/.fresh_install ]]; then rm -f /opt/iobroker/.fresh_install; fi
|
||||
|
||||
#####
|
||||
# STEP 5 - Starting ioBroker
|
||||
#####
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo "----- Step 5 of 5: ioBroker startup -----"
|
||||
echo "----- Step 5 of 5: ioBroker Startup -----"
|
||||
echo "$(printf -- '-%.0s' {1..80})"
|
||||
echo " "
|
||||
echo "Starting ioBroker... "
|
||||
@@ -533,7 +546,7 @@ echo " "
|
||||
echo "##### #### ### ## # iobroker.js-controller log output # ## ### #### #####"
|
||||
|
||||
# Setting healthcheck status to "running"
|
||||
echo "running" > /opt/scripts/.docker_config/.healthcheck
|
||||
echo "running" > /opt/.docker_config/.healthcheck
|
||||
|
||||
# Function for graceful shutdown by SIGTERM signal
|
||||
shut_down() {
|
||||
@@ -578,4 +591,4 @@ trap 'shut_down' SIGTERM
|
||||
gosu iobroker node node_modules/iobroker.js-controller/controller.js & wait
|
||||
|
||||
# Fallback process for keeping container running when ioBroker is stopped for maintenance (e.g. js-controller update)
|
||||
tail -f /dev/null
|
||||
gosu iobroker tail -f /dev/null
|
||||
@@ -5,9 +5,15 @@ set -euo pipefail
|
||||
|
||||
autoconfirm= # can be set to 'yes' by command line option
|
||||
killbyname= # can be set to 'yes' by command line option (undocumented, only for use with backitup restore scripts)
|
||||
healthcheck=/opt/scripts/.docker_config/.healthcheck # path of healthcheck file
|
||||
healthcheck=/opt/.docker_config/.healthcheck # path of healthcheck file
|
||||
pkill_timeout=10 # timeout for stopping iobroker in seconds
|
||||
|
||||
# check for user root
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
echo "WARNING! This script should be executed as user "iobroker"! Please switch user and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# display help text
|
||||
display_help() {
|
||||
echo "This script helps you manage your ioBroker container!"
|
||||
@@ -23,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"
|
||||
@@ -104,7 +109,7 @@ disable_maintenance() {
|
||||
|
||||
echo "Deactivating maintenance mode and forcing container to stop or restart..."
|
||||
echo "stopping" > "$healthcheck"
|
||||
gosu root pkill -u root
|
||||
pkill -u iobroker
|
||||
echo "Done."
|
||||
}
|
||||
|
||||
@@ -141,7 +146,7 @@ upgrade_jscontroller() {
|
||||
echo "Container will be stopped or restarted in 5 seconds..."
|
||||
sleep 5
|
||||
echo "stopping" > "$healthcheck"
|
||||
gosu root pkill -u root
|
||||
pkill -u iobroker
|
||||
}
|
||||
|
||||
# stop iobroker and wait until all processes stopped or pkill_timeout is reached
|
||||
@@ -159,12 +164,12 @@ stop_iob() {
|
||||
|
||||
if [[ "$killbyname" != yes ]]; then
|
||||
# pgrep exits with status 1 when there are no matches
|
||||
while pgrep -u iobroker -f 'io.' > /dev/null; (( $? != 1 )); do
|
||||
while pgrep -u iobroker -f 'io\..' > /dev/null; (( $? != 1 )); do
|
||||
if (($(date +%s) > timeout)); then
|
||||
echo -e "\nTimeout reached. Killing remaining processes..."
|
||||
pgrep --list-full -u iobroker
|
||||
pkill --signal SIGKILL -u iobroker -f 'io.'
|
||||
echo "\nDone."
|
||||
pgrep --list-full -u iobroker -f 'io\..'
|
||||
pkill --signal SIGKILL -u iobroker -f 'io\..'
|
||||
echo "Done."
|
||||
return
|
||||
fi
|
||||
sleep 1
|
||||
@@ -178,6 +183,7 @@ stop_iob() {
|
||||
fi
|
||||
|
||||
echo -e "Done."
|
||||
echo " "
|
||||
}
|
||||
|
||||
# restart container
|
||||
@@ -204,64 +210,13 @@ restart_container() {
|
||||
echo "Container will be stopped or restarted in 5 seconds..."
|
||||
sleep 5
|
||||
echo "stopping" > "$healthcheck"
|
||||
gosu root pkill -u root
|
||||
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."
|
||||
|
||||
if [[ "$autoconfirm" != yes ]]; then
|
||||
local reply
|
||||
|
||||
read -rp 'Do you want to continue [yes/no]? ' reply
|
||||
if [[ "$reply" == y || "$reply" == Y || "$reply" == yes ]]; then
|
||||
: # continue
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if check_starting > /dev/null; then
|
||||
echo "Startup script is still running."
|
||||
echo "Please check container log and wait until ioBroker is sucessfully started."
|
||||
echo "Then try again."
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! maintenance_enabled > /dev/null; then
|
||||
autoconfirm=yes
|
||||
enable_maintenance
|
||||
fi
|
||||
|
||||
echo -n "Restoring ioBroker... "
|
||||
set +e
|
||||
bash iobroker restore 0 > /opt/iobroker/log/restore.log 2>&1
|
||||
return=$?
|
||||
set -e
|
||||
if [[ "$return" -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..."
|
||||
sleep 10
|
||||
echo "stopping" > "$healthcheck"
|
||||
gosu root pkill -u root
|
||||
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
|
||||
@@ -1,13 +1,15 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
||||
then
|
||||
echo "[setup_avahi.sh] Avahi is already installed. Nothing to do here."
|
||||
else
|
||||
echo -n "[setup_avahi.sh] Avahi-daemon is NOT installed. Going to install it now... "
|
||||
apt-get update > /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get install -y --no-install-recommends libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
||||
rm -rf /var/lib/apt/lists/* >> /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get -q update > /opt/scripts/avahi_startup.log 2>&1
|
||||
apt-get -q -y --no-install-recommends install libavahi-compat-libdnssd-dev avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1
|
||||
# Silent Cleanup
|
||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||
rm -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/* || true
|
||||
echo "Done."
|
||||
echo -n "[setup_avahi.sh] Configuring avahi-daemon... "
|
||||
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
||||
@@ -32,7 +34,7 @@ echo -n "[setup_avahi.sh] Starting dbus... "
|
||||
echo "Done."
|
||||
|
||||
echo -n "[setup_avahi.sh] Starting avahi-daemon... "
|
||||
/etc/init.d/avahi-daemon start >> /opt/scripts/avahi_startup.log 2>&1
|
||||
avahi-daemon >> /opt/scripts/avahi_startup.log 2>&1 &
|
||||
echo "Done."
|
||||
|
||||
exit 0
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# reading env
|
||||
debug=$DEBUG
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# bash strict mode
|
||||
set -euo pipefail
|
||||
@@ -58,7 +58,7 @@ if [[ "$1" == "-install" ]]; then
|
||||
fi
|
||||
done
|
||||
elif [[ "$1" == "-update" ]]; then
|
||||
echo -n "Updating Linux packages on first run... "
|
||||
echo -n "PACKAGES_UPDATE is set. Updating Linux packages on first run... "
|
||||
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||
return1=$?
|
||||
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
||||
@@ -78,7 +78,6 @@ fi
|
||||
|
||||
# Silent Cleanup
|
||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
||||
rm -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/*
|
||||
rm -f /opt/scripts/.packages /opt/scripts/.docker_config/.packages
|
||||
rm -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/* || true
|
||||
|
||||
exit 0
|
||||
@@ -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-debian-image-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,19 +11,19 @@
|
||||
[](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)
|
||||
|
||||
# Important note
|
||||
|
||||
New major image versions (e.g. v6, v7, v8) always include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
New major image versions (e.g. v6, v7, v8) usually include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
|
||||
# Quick reference
|
||||
|
||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/HwUCwsH), [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/5jGWNKnpZ8), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||
* Supported architectures: amd64, arm32v7, arm64v8
|
||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
||||
@@ -34,39 +34,36 @@ New major image versions (e.g. v6, v7, v8) always include a new major version of
|
||||
|
||||
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
|
||||
* [`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), [`latest`](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>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.<br>
|
||||
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
|
||||
@@ -75,72 +72,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
|
||||
```
|
||||
**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
|
||||
* `ZWAVE` (optional) Set `true` to install openzwave to support zwave 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`.
|
||||
* `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. :)
|
||||
|
||||
@@ -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-debian-image-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,19 +13,19 @@
|
||||
[](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)
|
||||
|
||||
# Important note
|
||||
|
||||
New major image versions (e.g. v6, v7, v8) always include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
New major image versions (e.g. v6, v7, v8) usually include a new major version of node! Although js-controller should handle this kind of upgrade fine, in some cases this still results in problems with some adapters. To avoid having trouble with this major version upgrades, it is always a good move to upgrade your container manually with backup and restore procedure. For more details please see the maintenance part of the [ioBroker Docker image docs](https://docs.buanet.de/iobroker-docker-image/docs/#maintenance).
|
||||
|
||||
# Quick reference
|
||||
|
||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/HwUCwsH), [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to get support: [ioBroker forum](https://forum.iobroker.net/), [Discord channel](https://discord.gg/5jGWNKnpZ8), [Facebook group](https://www.facebook.com/groups/440499112958264)
|
||||
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||
* Supported architectures: amd64, arm32v7, arm64v8
|
||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
||||
@@ -36,39 +36,36 @@ New major image versions (e.g. v6, v7, v8) always include a new major version of
|
||||
|
||||
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
|
||||
* [`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), [`latest`](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>
|
||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.<br>
|
||||
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,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
|
||||
```
|
||||
**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
|
||||
* `ZWAVE` (optional) Set `true` to install openzwave to support zwave 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`.
|
||||
* `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