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
|
blank_issues_enabled: false
|
||||||
contact_links:
|
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/
|
url: https://docs.buanet.de/iobroker-docker-image/docs/
|
||||||
about: Please make sure you read the docs before submitting any issues.
|
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?
|
- name: Questions? / Fragen?
|
||||||
url: https://github.com/buanet/ioBroker.docker/discussions
|
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
|
- name: ioBroker Community Forum
|
||||||
url: https://forum.iobroker.net/
|
url: https://forum.iobroker.net/
|
||||||
about: Need support? Check out our ioBroker Community Forum.
|
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
|
- name: ioBroker Discord Channel
|
||||||
url: https://discord.gg/Ne3y6fUac3
|
url: https://discord.gg/5jGWNKnpZ8
|
||||||
about: Need support? Check out our ioBroker Discord channel.
|
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
|
name: Feature Request / Verbesserungsvorschlag
|
||||||
description: Request a new feature here.
|
description: Request a new feature here. / Schlage eine Verbesserung vor.
|
||||||
title: "[Feature Request]: "
|
title: "[Feature Request]: "
|
||||||
labels: "enhancement"
|
labels: "enhancement"
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
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
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
attributes:
|
attributes:
|
||||||
label: Description
|
label: Description / Beschreibung
|
||||||
description: Please describe your request.
|
description: Please describe your request. / Bitte beschreibe deine Anforderung.
|
||||||
placeholder: Waht are your ideas?
|
placeholder: What are your ideas? / Was sind deine Ideen?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
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
|
name: Problem Report / Fehlermeldung
|
||||||
description: Report a problem here.
|
description: Report a problem here. / Melde Fehler hier.
|
||||||
title: "[Problem]: "
|
title: "[Problem]: "
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
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
|
- type: textarea
|
||||||
id: description
|
id: description
|
||||||
attributes:
|
attributes:
|
||||||
label: Description
|
label: Description / Beschreibung
|
||||||
description: Please describe your problem.
|
description: Please describe your problem. / Bitte beschreibe dein Problem.
|
||||||
placeholder: What happened? What did you expect?
|
placeholder: What happened? What did you expect? / Was ist passiert? Was hast du erwartet?
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
id: version
|
id: version
|
||||||
attributes:
|
attributes:
|
||||||
label: Image version
|
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
|
placeholder: v1.2.3
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: logs
|
id: logs
|
||||||
attributes:
|
attributes:
|
||||||
label: Docker logs
|
label: Docker logs / Docker Protokoll
|
||||||
description: Please provide the full Docker log output from your Docker container startup.
|
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
|
render: shell
|
||||||
validations:
|
validations:
|
||||||
required: true
|
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
|
- name: Testing with docker run
|
||||||
run: |
|
run: |
|
||||||
echo "[LOG] Starting ioBroker Container..."
|
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 "[LOG] Done."
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "[LOG] Waiting for Startup Script..."
|
echo "[LOG] Waiting for Startup Script..."
|
||||||
sleep 30
|
sleep 60
|
||||||
echo "[LOG] Done."
|
echo "[LOG] Done."
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "[LOG] Writing Logs..."
|
echo "[LOG] Writing Logs..."
|
||||||
@@ -23,11 +23,11 @@ jobs:
|
|||||||
echo "[LOG] Done."
|
echo "[LOG] Done."
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "[LOG] Checking Web UI..."
|
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 "[LOG] Done."
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "[LOG] Output testrun.log:"
|
echo "[LOG] Output testrun.log:"
|
||||||
cat testrun.log
|
cat testrun.log
|
||||||
echo ' '
|
echo ' '
|
||||||
echo "[LOG] Test sucesssful."
|
echo "[LOG] Test successful."
|
||||||
echo ' '
|
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:
|
update-docker-readme:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3.5.3
|
- uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Update Docker Hub Readme (buanet)
|
- name: Update Docker Hub Readme (buanet)
|
||||||
uses: peter-evans/dockerhub-description@v3.4.2
|
uses: peter-evans/dockerhub-description@v4.0.2
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASS }}
|
password: ${{ secrets.DOCKER_PASS }}
|
||||||
repository: buanet/iobroker
|
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
|
readme-filepath: ./docs/README_docker_hub_buanet.md
|
||||||
|
|
||||||
- name: Update Docker Hub Readme (iobroker)
|
- name: Update Docker Hub Readme (iobroker)
|
||||||
uses: peter-evans/dockerhub-description@v3.4.2
|
uses: peter-evans/dockerhub-description@v4.0.2
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER_IOB }}
|
username: ${{ secrets.DOCKER_USER_IOB }}
|
||||||
password: ${{ secrets.DOCKER_PASS_IOB }}
|
password: ${{ secrets.DOCKER_PASS_IOB }}
|
||||||
repository: iobroker/iobroker
|
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
|
readme-filepath: ./docs/README_docker_hub_iobroker.md
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
name: Check ioBroker versions
|
name: Version Checks
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
@@ -10,12 +10,19 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repo
|
- name: Checkout repo
|
||||||
uses: actions/checkout@v3.5.3
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: 'buanet/ioBroker.docker'
|
repository: 'buanet/ioBroker.docker'
|
||||||
token: ${{ secrets.ACTIONS_PAT }}
|
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: |
|
run: |
|
||||||
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||||
jq -r '."js-controller".version' > .github/dependencies/.js-controller-version
|
jq -r '."js-controller".version' > .github/dependencies/.js-controller-version
|
||||||
@@ -29,13 +36,13 @@ jobs:
|
|||||||
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
curl -sL https://repo.iobroker.live/sources-dist.json | \
|
||||||
jq -r '."discovery".version' > .github/dependencies/.discovery-version
|
jq -r '."discovery".version' > .github/dependencies/.discovery-version
|
||||||
echo "[LOG] Fetched discovery version is $(cat .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" | \
|
curl -sL https://nodejs.org/dist/index.json | \
|
||||||
awk -F ': ' '/^Version:/ {split($2,a,"-"); print a[1]}' > .github/dependencies/.nodejs-version
|
jq -r 'map(select(.version | startswith("v20."))) | .[0].version' > .github/dependencies/.nodejs-version
|
||||||
echo "[LOG] Fetched nodejs version is $(cat .github/dependencies/.nodejs-version)"
|
echo "[LOG] Fetched nodejs version is $(cat .github/dependencies/.nodejs-version)"
|
||||||
|
|
||||||
- name: Check for modified files
|
- name: Check for modified files
|
||||||
id: git-check
|
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
|
- name: Commit latest release version
|
||||||
if: steps.git-check.outputs.modified == 'true'
|
if: steps.git-check.outputs.modified == 'true'
|
||||||
@@ -45,18 +52,16 @@ jobs:
|
|||||||
git commit -am "new ioBroker versions"
|
git commit -am "new ioBroker versions"
|
||||||
git push
|
git push
|
||||||
|
|
||||||
- name: Trigger build debian latest (buanet)
|
- name: Logging result
|
||||||
if: steps.git-check.outputs.modified == 'true'
|
run: |
|
||||||
uses: benc-uk/workflow-dispatch@v1.2
|
echo "base image updated = ${{ steps.baseimage-check.outputs.needs-updating }}"
|
||||||
with:
|
echo "ioBroker version updated = ${{ steps.git-check.outputs.modified }}"
|
||||||
workflow: Build debian latest (buanet)
|
|
||||||
repo: buanet/ioBroker.docker
|
|
||||||
token: ${{ secrets.ACTIONS_PAT }}
|
|
||||||
|
|
||||||
- name: Trigger build debian latest (iobroker)
|
- name: Trigger Build Debian 12 Image (latest)
|
||||||
if: steps.git-check.outputs.modified == 'true'
|
if: steps.baseimage-check.outputs.needs-updating == 'true' || steps.git-check.outputs.modified == 'true'
|
||||||
uses: benc-uk/workflow-dispatch@v1.2
|
uses: benc-uk/workflow-dispatch@v1.2
|
||||||
with:
|
with:
|
||||||
workflow: Build debian latest (iobroker)
|
ref: 'main'
|
||||||
repo: buanet/ioBroker.docker
|
workflow: 'Build Debian 12 Image (latest)'
|
||||||
|
repo: 'buanet/iobroker.docker'
|
||||||
token: ${{ secrets.ACTIONS_PAT }}
|
token: ${{ secrets.ACTIONS_PAT }}
|
||||||
87
CHANGELOG.md
87
CHANGELOG.md
@@ -1,5 +1,78 @@
|
|||||||
## Changelog
|
## 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)
|
### v8.1.0 (15.08.2023)
|
||||||
* repo cleanup
|
* repo cleanup
|
||||||
* v8.1.0-beta.4 (29.07.2023)
|
* v8.1.0-beta.4 (29.07.2023)
|
||||||
@@ -109,7 +182,7 @@
|
|||||||
* v5.2.0-beta4 (2021-09-10)
|
* v5.2.0-beta4 (2021-09-10)
|
||||||
* adding iobroker user rights for "gosu"
|
* adding iobroker user rights for "gosu"
|
||||||
* adding more labels in OCI standard format
|
* adding more labels in OCI standard format
|
||||||
* fixing workdir bug
|
* fixing work dir bug
|
||||||
* adding backitup compatibility
|
* adding backitup compatibility
|
||||||
* v5.2.0-beta3 (2021-09-04)
|
* v5.2.0-beta3 (2021-09-04)
|
||||||
* reducing layers in dockerfile
|
* reducing layers in dockerfile
|
||||||
@@ -135,10 +208,10 @@
|
|||||||
|
|
||||||
### v5.1.0 (2020-11-05)
|
### v5.1.0 (2020-11-05)
|
||||||
* v5.0.2-beta (2020-07-28)
|
* v5.0.2-beta (2020-07-28)
|
||||||
* added docker tag for majorversion latest
|
* added docker tag for major version latest
|
||||||
* extend readme.md docu
|
* extend readme.md docs
|
||||||
* added maintenance script
|
* added maintenance script
|
||||||
* added container healthcheck
|
* added container health check
|
||||||
* fixed configuration procedure and logging for objects and states db setup
|
* fixed configuration procedure and logging for objects and states db setup
|
||||||
* v5.0.1-beta (2020-07-01)
|
* v5.0.1-beta (2020-07-01)
|
||||||
* fixing backup detection in startup script
|
* fixing backup detection in startup script
|
||||||
@@ -165,7 +238,7 @@
|
|||||||
* switching base image to buster
|
* switching base image to buster
|
||||||
* optimizing installation of packages defined by ENV "PACKAGES"
|
* optimizing installation of packages defined by ENV "PACKAGES"
|
||||||
* v4.1.3-beta (2020-02-08)
|
* v4.1.3-beta (2020-02-08)
|
||||||
* renamed ENV for adminport (new "IOB_ADMINPORT)")
|
* renamed ENV for admin port (new "IOB_ADMINPORT)")
|
||||||
* added new ENVs for "iobroker setup custom" (replacing "REDIS")
|
* added new ENVs for "iobroker setup custom" (replacing "REDIS")
|
||||||
* enhancements in startup script logging
|
* enhancements in startup script logging
|
||||||
* v4.1.2-beta (2020-02-02)
|
* v4.1.2-beta (2020-02-02)
|
||||||
@@ -185,7 +258,7 @@
|
|||||||
* v4.0.1-beta (2019-11-25)
|
* v4.0.1-beta (2019-11-25)
|
||||||
* added env for iobroker admin port
|
* added env for iobroker admin port
|
||||||
* added env for usb-devices (setting permissions)
|
* added env for usb-devices (setting permissions)
|
||||||
* updateing prerequisites for iobroker installation
|
* updating prerequisites for iobroker installation
|
||||||
* some small code fixes
|
* some small code fixes
|
||||||
|
|
||||||
### v4.0.0 (2019-10-25)
|
### v4.0.0 (2019-10-25)
|
||||||
@@ -280,7 +353,7 @@
|
|||||||
* added git package
|
* added git package
|
||||||
|
|
||||||
### v0.1.0 (2017-03-08)
|
### 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)
|
* fixed timezone issue (sets now timezone to Europe/Berlin)
|
||||||
|
|
||||||
### v0.0.2 (2017-03-06)
|
### v0.0.2 (2017-03-06)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
19
README.md
19
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/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/issues)
|
||||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
[](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?
|
### 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?
|
### Is there a more detailed documentation?
|
||||||
|
|
||||||
@@ -47,26 +47,25 @@ You can pull the Docker image from:
|
|||||||
|
|
||||||
### Where can I get help?
|
### 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/)
|
* [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/)
|
* [Facebook group](https://www.facebook.com/groups/440499112958264/)
|
||||||
* [Telegram channel](https://t.me/+Xfjuou6-LztkOTBi)
|
|
||||||
|
|
||||||
### How to report an issue or request a feature?
|
### 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.
|
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.
|
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
|
## :eyes: Miscellaneous
|
||||||
|
|
||||||
### Beta testing
|
### 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
|
### Support the project
|
||||||
|
|
||||||
The easiest way to support this project is to leave me some likes/ stars on Github and Docker hub!<br>
|
The easiest way to support this project is to leave me some likes/stars on Github and Docker hub!<br>
|
||||||
If you want to give something back to the community, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and help me answering questions, fixing bugs or adding new features!<br>
|
If you want to give something back to the community, feel free to take a look into the [open issues](https://github.com/buanet/ioBroker.docker/issues) or the [ioBroker forum thread](http://forum.iobroker.net/viewtopic.php?f=17&t=5089) and help me answering questions, fixing bugs or adding new features!<br>
|
||||||
If that doesn't work for you and you want to buy me a pizza instead, you can do this here: <a href="https://www.paypal.me/buanet" target="_blank"><img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/pp_logo.png" height="15" width="15"></a><br>
|
If that doesn't work for you and you want to buy me a pizza instead, you can do this here: <a href="https://www.paypal.me/buanet" target="_blank"><img src="https://github.com/buanet/ioBroker.docker/raw/main/docs/img/pp_logo.png" height="15" width="15"></a><br>
|
||||||
Thank you!
|
Thank you!
|
||||||
@@ -79,7 +78,7 @@ Moved to [CHANGELOG.md](CHANGELOG.md).
|
|||||||
|
|
||||||
MIT License
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
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" \
|
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.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.authors="André Germann <info@buanet.de>" \
|
||||||
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
org.opencontainers.image.url="https://github.com/buanet/ioBroker.docker" \
|
||||||
org.opencontainers.image.source="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.version="${VERSION}" \
|
||||||
org.opencontainers.image.created="${DATI}"
|
org.opencontainers.image.created="${DATI}"
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND="noninteractive"
|
||||||
|
|
||||||
# Copy scripts
|
# Copy files
|
||||||
COPY scripts /opt/scripts
|
COPY scripts /opt/scripts
|
||||||
COPY userscripts /opt/userscripts
|
COPY userscripts /opt/userscripts
|
||||||
|
|
||||||
# Install prerequisites (including node) and generating locales
|
# Set up ioBroker
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get upgrade -y \
|
||||||
|
# Install prerequisites
|
||||||
|
&& apt-get install -q -y --no-install-recommends \
|
||||||
apt-utils \
|
apt-utils \
|
||||||
|
ca-certificates \
|
||||||
cifs-utils \
|
cifs-utils \
|
||||||
curl \
|
curl \
|
||||||
|
gnupg \
|
||||||
gosu \
|
gosu \
|
||||||
iputils-ping \
|
iputils-ping \
|
||||||
jq \
|
jq \
|
||||||
|
libatomic1 \
|
||||||
locales \
|
locales \
|
||||||
nfs-common \
|
nfs-common \
|
||||||
procps \
|
procps \
|
||||||
python3 \
|
python3 \
|
||||||
python3-dev \
|
python3-dev \
|
||||||
sudo \
|
|
||||||
tar \
|
tar \
|
||||||
tzdata \
|
tzdata \
|
||||||
udev \
|
udev \
|
||||||
wget \
|
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
|
# Generating locales
|
||||||
&& sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
&& sed -i 's/^# *\(de_DE.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
|
||||||
&& locale-gen \
|
&& locale-gen \
|
||||||
# Change permissions for scripts
|
# Prepare .docker_config
|
||||||
&& chmod 777 /opt/scripts/ \
|
&& mkdir /opt/.docker_config \
|
||||||
&& chmod 777 /opt/userscripts/ \
|
&& echo "starting" > /opt/.docker_config/.healthcheck \
|
||||||
&& chmod +x /opt/scripts/*.sh \
|
&& echo "${VERSION}" > /opt/.docker_config/.thisisdocker \
|
||||||
&& chmod +x /opt/userscripts/*.sh \
|
&& echo "${DATI}" > /opt/.docker_config/.build \
|
||||||
# Prepare
|
&& echo "true" > /opt/.docker_config/.first_run \
|
||||||
&& mkdir -p /opt/scripts/.docker_config/ \
|
# Prepare old .docker_config (needed until changed in iobroker)
|
||||||
&& echo "starting" > /opt/scripts/.docker_config/.healthcheck \
|
&& mkdir /opt/scripts/.docker_config \
|
||||||
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
&& echo "${VERSION}" > /opt/scripts/.docker_config/.thisisdocker \
|
||||||
&& echo "true" > /opt/.first_run \
|
# Run iobroker installer
|
||||||
# Run installer
|
&& curl -sL https://iobroker.net/install.sh -o install.sh \
|
||||||
&& curl -sL https://iobroker.net/install.sh | bash - \
|
&& 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
|
# Deleting UUID from build
|
||||||
&& iobroker unsetup -y \
|
&& iobroker unsetup -y \
|
||||||
&& echo "true" > /opt/iobroker/.fresh_install \
|
&& echo "true" > /opt/iobroker/.fresh_install \
|
||||||
# Backup initial ioBroker and userscript folder
|
# Backup initial ioBroker and userscript folder
|
||||||
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
&& tar -cf /opt/initial_iobroker.tar /opt/iobroker \
|
||||||
&& tar -cf /opt/initial_userscripts.tar /opt/userscripts \
|
&& 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 \
|
&& chsh -s /bin/bash iobroker \
|
||||||
&& usermod --home /opt/iobroker iobroker \
|
&& usermod --home /opt/iobroker iobroker \
|
||||||
&& usermod -u 1000 iobroker \
|
&& usermod -u 1000 iobroker \
|
||||||
&& groupmod -g 1000 iobroker \
|
&& groupmod -g 1000 iobroker \
|
||||||
&& chown root:iobroker /usr/sbin/gosu \
|
&& 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
|
# Clean up installation cache
|
||||||
|
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& apt-get autoclean -y \
|
&& apt-get autoclean -y \
|
||||||
&& apt-get autoremove \
|
&& apt-get autoremove \
|
||||||
&& apt-get clean \
|
&& apt-get clean \
|
||||||
&& rm -rf /tmp/* /var/tmp/* \
|
&& rm -rf /tmp/* /var/tmp/* /root/.cache/* /root/.npm/* /var/lib/apt/lists/*
|
||||||
&& rm -rf /root/.cache/* /root/.npm/* \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Setting up default ENVs
|
# Default environment variables
|
||||||
ENV DEBIAN_FRONTEND="teletype" \
|
ENV BUILD="${BUILD}" \
|
||||||
|
DEBIAN_FRONTEND="teletype" \
|
||||||
LANG="de_DE.UTF-8" \
|
LANG="de_DE.UTF-8" \
|
||||||
LANGUAGE="de_DE:de" \
|
LANGUAGE="de_DE:de" \
|
||||||
LC_ALL="de_DE.UTF-8" \
|
LC_ALL="de_DE.UTF-8" \
|
||||||
@@ -85,7 +95,7 @@ ENV DEBIAN_FRONTEND="teletype" \
|
|||||||
SETUID=1000 \
|
SETUID=1000 \
|
||||||
TZ="Europe/Berlin"
|
TZ="Europe/Berlin"
|
||||||
|
|
||||||
# Expose default admin ui port
|
# Default admin ui port
|
||||||
EXPOSE 8081
|
EXPOSE 8081
|
||||||
|
|
||||||
# Change work dir
|
# Change work dir
|
||||||
@@ -95,7 +105,7 @@ WORKDIR /opt/iobroker/
|
|||||||
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
HEALTHCHECK --interval=15s --timeout=5s --retries=5 \
|
||||||
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
CMD ["/bin/bash", "-c", "/opt/scripts/healthcheck.sh"]
|
||||||
|
|
||||||
# Volumes for persistent data
|
# Volume for persistent data
|
||||||
VOLUME ["/opt/iobroker"]
|
VOLUME ["/opt/iobroker"]
|
||||||
|
|
||||||
# Run startup-script
|
# 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
|
# 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
|
then
|
||||||
echo "Health status: OK - Startup script is still running."
|
echo "Health status: OK - Startup script is still running."
|
||||||
exit 0
|
exit 0
|
||||||
elif [ "$(cat /opt/scripts/.docker_config/.healthcheck)" == "maintenance" ]
|
elif [ "$(cat /opt/.docker_config/.healthcheck)" == "maintenance" ]
|
||||||
then
|
then
|
||||||
echo "Health status: OK - Container is running in maintenance mode."
|
echo "Health status: OK - Container is running in maintenance mode."
|
||||||
exit 0
|
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
|
set -euo pipefail
|
||||||
|
|
||||||
# Setting healthcheck status to "starting"
|
# Setting healthcheck status to "starting"
|
||||||
echo "starting" > /opt/scripts/.docker_config/.healthcheck
|
echo "starting" > /opt/.docker_config/.healthcheck
|
||||||
|
|
||||||
# Reading ENV
|
# Reading ENV
|
||||||
set +u
|
set +u
|
||||||
@@ -17,36 +17,42 @@ offlinemode=$OFFLINE_MODE
|
|||||||
objectsdbhost=$IOB_OBJECTSDB_HOST
|
objectsdbhost=$IOB_OBJECTSDB_HOST
|
||||||
objectsdbport=$IOB_OBJECTSDB_PORT
|
objectsdbport=$IOB_OBJECTSDB_PORT
|
||||||
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
objectsdbtype=$IOB_OBJECTSDB_TYPE
|
||||||
objectsdbname=$IOB_OBJECTSDB_NAME # new for sentinel support
|
objectsdbname=$IOB_OBJECTSDB_NAME
|
||||||
objectsdbpass=$IOB_OBJECTSDB_PASS # new for auth support
|
objectsdbpass=$IOB_OBJECTSDB_PASS
|
||||||
packages=$PACKAGES
|
packages=$PACKAGES
|
||||||
|
packagesupdate=$PACKAGES_UPDATE
|
||||||
permissioncheck=$PERMISSION_CHECK
|
permissioncheck=$PERMISSION_CHECK
|
||||||
setgid=$SETGID
|
setgid=$SETGID
|
||||||
setuid=$SETUID
|
setuid=$SETUID
|
||||||
statesdbhost=$IOB_STATESDB_HOST
|
statesdbhost=$IOB_STATESDB_HOST
|
||||||
statesdbport=$IOB_STATESDB_PORT
|
statesdbport=$IOB_STATESDB_PORT
|
||||||
statesdbtype=$IOB_STATESDB_TYPE
|
statesdbtype=$IOB_STATESDB_TYPE
|
||||||
statesdbname=$IOB_STATESDB_NAME # new for sentinel support
|
statesdbname=$IOB_STATESDB_NAME
|
||||||
statesdbpass=$IOB_STATESDB_PASS # new for auth support
|
statesdbpass=$IOB_STATESDB_PASS
|
||||||
usbdevices=$USBDEVICES
|
usbdevices=$USBDEVICES
|
||||||
zwave=$ZWAVE
|
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
pkill_timeout=10 # timeout for iobroker shutdown in seconds
|
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 function
|
||||||
stop_on_error() {
|
stop_on_error() {
|
||||||
if [[ "$debug" == "true" ]]; then
|
if [[ "$debug" == "true" || "$debug" == "42" ]]; then
|
||||||
echo " "
|
echo " "
|
||||||
echo "[DEBUG] Debug mode prevents the container from exiting on errors."
|
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] 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] If you want to stop or restart your container you have to do it manually."
|
||||||
echo "[DEBUG] IoBroker is not running!"
|
echo "[DEBUG] IoBroker is not running!"
|
||||||
tail -f /dev/null
|
trap 'exit_with_error' SIGTERM SIGKILL
|
||||||
|
tail -f /dev/null & wait
|
||||||
else
|
else
|
||||||
echo " "
|
exit_with_error
|
||||||
echo "This Script will exit now."
|
|
||||||
exit 1
|
|
||||||
fi
|
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 [[ "$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 [[ "$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 [[ "$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 [[ "$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 [[ "$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 [[ "$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 [[ "$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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
# Debug logging notice
|
# 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 "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
|
||||||
echo "!!!! DEBUG LOG ACTIVE !!!!"
|
echo "!!!! DEBUG LOG ACTIVE !!!!"
|
||||||
echo "!!!! Environment variable DEBUG is set to true. !!!!"
|
echo "!!!! Environment variable DEBUG is set to true. !!!!"
|
||||||
@@ -121,44 +137,41 @@ if [[ "$debug" == "true" ]]; then
|
|||||||
echo " "
|
echo " "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# STEP 1 - Preparing container
|
# STEP 1 - Preparing container
|
||||||
#####
|
#####
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
# Actions running on first start only
|
# Actions running on first start only
|
||||||
if [[ -f /opt/.first_run ]]; then
|
if [[ -f /opt/.docker_config/.first_run ]]; then
|
||||||
# Updating Linux packages
|
# Updating Linux packages
|
||||||
if [[ "$offlinemode" = "true" ]]; then
|
if [[ "$offlinemode" = "true" ]]; then
|
||||||
echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run."
|
echo "OFFLINE_MODE is \"true\". Skipping Linux package updates on first run."
|
||||||
else
|
echo " "
|
||||||
bash /opt/scripts/setup_packages.sh -update
|
elif [[ "$packagesupdate" = "true" ]]; then
|
||||||
|
if ! bash /opt/scripts/setup_packages.sh -update; then echo "Failed."; fi
|
||||||
|
echo " "
|
||||||
fi
|
fi
|
||||||
echo " "
|
|
||||||
# Installing packages from ENV
|
# Installing packages from ENV
|
||||||
if [[ "$packages" != "" && "$offlinemode" = "true" ]]; then
|
if [[ "$packages" != "" && "$offlinemode" = "true" ]]; then
|
||||||
echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation."
|
echo "PACKAGES is set, but OFFLINE_MODE is \"true\". Skipping Linux package installation."
|
||||||
elif [[ "$packages" != "" ]]; then
|
elif [[ "$packages" != "" ]]; then
|
||||||
echo "PACKAGES is set. Installing the following additional Linux packages: ""$packages"
|
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
|
fi
|
||||||
echo " "
|
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
|
else
|
||||||
echo "This is not the first run of this container. Skipping first run preparation."
|
echo "This is not the first run of this container. Skipping first run preparation."
|
||||||
fi
|
fi
|
||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
# Setting UID and/ or GID
|
# 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 "SETUID and/ or SETGID are set to custom values."
|
||||||
echo -n "Changing UID to \"""$setuid""\" and GID to \"""$setgid""\"... "
|
echo -n "Changing UID to \"""$setuid""\" and GID to \"""$setgid""\"... "
|
||||||
usermod -u "$setuid" iobroker
|
usermod -u "$setuid" iobroker
|
||||||
@@ -174,7 +187,7 @@ cd /opt/iobroker
|
|||||||
# STEP 2 - Detecting ioBroker-Installation
|
# STEP 2 - Detecting ioBroker-Installation
|
||||||
#####
|
#####
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo " "
|
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
|
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."
|
echo "IoBroker backup file detected in /opt/iobroker."
|
||||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Backup file name: " "$(ls *_backupiobroker.tar.gz)"; fi
|
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 "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 "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 " "
|
||||||
echo -n "Copying backup file and restoring initial ioBroker installation... "
|
echo -n "Copying backup file and restoring initial ioBroker installation... "
|
||||||
mv /opt/iobroker/*.tar.gz /opt/
|
mv /opt/iobroker/*.tar.gz /opt/
|
||||||
@@ -216,10 +229,20 @@ echo " "
|
|||||||
# STEP 3 - Checking ioBroker-Installation
|
# STEP 3 - Checking ioBroker-Installation
|
||||||
#####
|
#####
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo " "
|
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"
|
# (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts"
|
||||||
if [[ "$permissioncheck" == "false" ]]; then
|
if [[ "$permissioncheck" == "false" ]]; then
|
||||||
echo "PERMISSION_CHECK is set to false. Use this at your own risk!"
|
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!)... "
|
echo -n "(Re)setting permissions (This might take a while! Please be patient!)... "
|
||||||
chown -R "$setuid":"$setgid" /opt/iobroker
|
chown -R "$setuid":"$setgid" /opt/iobroker
|
||||||
chown -R "$setuid":"$setgid" /opt/scripts
|
chown -R "$setuid":"$setgid" /opt/scripts
|
||||||
|
chown -R "$setuid":"$setgid" /opt/userscripts
|
||||||
|
chown -R "$setuid":"$setgid" /opt/.docker_config
|
||||||
echo "Done."
|
echo "Done."
|
||||||
fi
|
fi
|
||||||
echo " "
|
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
|
# Checking multihost and db setup
|
||||||
if [[ "$multihost" == "master" || "$multihost" == "slave" ]]; then
|
if [[ "$multihost" == "master" || "$multihost" == "slave" ]]; then
|
||||||
# multihost enabled
|
# multihost enabled
|
||||||
@@ -298,15 +315,16 @@ elif [[ "$multihost" == "" || "$multihost" == "false" ]]; then
|
|||||||
else
|
else
|
||||||
echo "IOB_MULTIHOST is set, but the value is not valid. Please check your configuration."
|
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
|
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
|
stop_on_error
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# if restored a fresh install, running "iob setup first" for database init (but not on slaves!), otherwise check database connection
|
# 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
|
if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
||||||
echo -n "Initializing a fresh installation of ioBroker... "
|
echo -n "Initializing a fresh installation of ioBroker... "
|
||||||
|
if [[ ! -d "/opt/iobroker/log" ]]; then gosu iobroker mkdir "/opt/iobroker/log"; fi
|
||||||
set +e
|
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=$?
|
return=$?
|
||||||
set -e
|
set -e
|
||||||
rm -f /opt/iobroker/.fresh_install
|
rm -f /opt/iobroker/.fresh_install
|
||||||
@@ -319,20 +337,18 @@ if [[ -f /opt/iobroker/.fresh_install && "$multihost" != "slave" ]]; then
|
|||||||
echo "Done."
|
echo "Done."
|
||||||
echo " "
|
echo " "
|
||||||
else
|
else
|
||||||
echo -n "Checking Database connection... "
|
echo -n "Checking database connection... "
|
||||||
set +e
|
set +e
|
||||||
if iob uuid &> /dev/null; then
|
if gosu iobroker iob uuid &> /dev/null; then
|
||||||
echo "Done."
|
echo "Done."
|
||||||
echo " "
|
echo " "
|
||||||
else
|
else
|
||||||
errormsg=$(iob uuid 2>&1 | sed 's/^/[DEBUG] /')
|
|
||||||
echo "Failed."
|
echo "Failed."
|
||||||
if [[ "$debug" == "true" ]]; then
|
errormsg=$(gosu iobroker iob uuid 2>&1 | sed 's/^/[ERROR] /')
|
||||||
echo "[DEBUG] Error message: "
|
echo "$errormsg"
|
||||||
echo "$errormsg"
|
echo " "
|
||||||
fi
|
|
||||||
echo "Please check your configuration and try again."
|
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
|
stop_on_error
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
@@ -345,20 +361,20 @@ if [[ "$multihost" == "slave" ]]; then
|
|||||||
else
|
else
|
||||||
# get admin instance and hostname
|
# get admin instance and hostname
|
||||||
set +e
|
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
|
set -e
|
||||||
if [[ "$admininstance" != "" ]]; then
|
if [[ "$admininstance" != "" ]]; then
|
||||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; 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
|
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||||
else
|
else
|
||||||
set +e
|
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
|
set -e
|
||||||
if [[ "$admininstance" != "" ]]; then
|
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 disabled."; fi
|
||||||
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin instance is:" "$admininstance"; 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
|
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected admin hostname is:" "$adminhostname"; fi
|
||||||
else
|
else
|
||||||
echo "There was a problem detecting the admin instance of your iobroker."
|
echo "There was a problem detecting the admin instance of your iobroker."
|
||||||
@@ -371,7 +387,7 @@ else
|
|||||||
if [[ "$adminhostname" != "" && "$adminhostname" != "$(hostname)" ]]; then
|
if [[ "$adminhostname" != "" && "$adminhostname" != "$(hostname)" ]]; then
|
||||||
echo "Hostname in ioBroker does not match the hostname of this container."
|
echo "Hostname in ioBroker does not match the hostname of this container."
|
||||||
echo -n "Updating hostname to \"""$(hostname)""\"... "
|
echo -n "Updating hostname to \"""$(hostname)""\"... "
|
||||||
bash iobroker host "$adminhostname"
|
gosu iobroker iob host "$adminhostname"
|
||||||
echo "Done."
|
echo "Done."
|
||||||
echo " "
|
echo " "
|
||||||
elif [[ "$adminhostname" = "$(hostname)" ]]; then
|
elif [[ "$adminhostname" = "$(hostname)" ]]; then
|
||||||
@@ -390,9 +406,9 @@ if [[ "$debug" == "true" && "$multihost" != "slave" ]]; then
|
|||||||
echo " "
|
echo " "
|
||||||
# get information and send to array
|
# get information and send to array
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
instances_array=("$(iob list instances)")
|
instances_array=("$(gosu iobroker iob list instances)")
|
||||||
repos_array=("$(iob repo list)")
|
repos_array=("$(gosu iobroker iob repo list)")
|
||||||
updates_array=("$(iob update)")
|
updates_array=("$(gosu iobroker iob update)")
|
||||||
# list iob instances
|
# list iob instances
|
||||||
echo "[DEBUG] ##### iobroker list instances #####"
|
echo "[DEBUG] ##### iobroker list instances #####"
|
||||||
for i in "${instances_array[@]}"
|
for i in "${instances_array[@]}"
|
||||||
@@ -419,23 +435,23 @@ fi
|
|||||||
# STEP 4 - Setting up special sessting for ioBroker-adapters
|
# STEP 4 - Setting up special sessting for ioBroker-adapters
|
||||||
#####
|
#####
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo " "
|
echo " "
|
||||||
|
|
||||||
echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables."
|
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 " "
|
echo " "
|
||||||
|
|
||||||
# Checking ENV for Adminport
|
# Checking ENV for Adminport
|
||||||
if [[ "$adminport" != "" && "$multihost" != "slave" ]]; then
|
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..')
|
admininstanceshort=$(echo "$admininstance" | grep -m 1 -o 'admin..')
|
||||||
if [[ "$adminport" != "$adminportold" ]]; then
|
if [[ "$adminport" != "$adminportold" ]]; then
|
||||||
echo "IOB_ADMINPORT is set and does not match port configured in ioBroker."
|
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
|
if [[ "$debug" == "true" ]]; then echo "[DEBUG] Detected Admin Port in ioBroker: " "$adminportold"; fi
|
||||||
echo "Setting Adminport to \"""$adminport""\"... "
|
echo "Setting Adminport to \"""$adminport""\"... "
|
||||||
bash iobroker set "$admininstanceshort" --port "$adminport"
|
gosu iobroker iob set "$admininstanceshort" --port "$adminport"
|
||||||
echo "Done."
|
echo "Done."
|
||||||
echo " "
|
echo " "
|
||||||
fi
|
fi
|
||||||
@@ -444,7 +460,8 @@ fi
|
|||||||
# Checking ENV for Backitup (external database backups)
|
# Checking ENV for Backitup (external database backups)
|
||||||
if [[ "$backitup" == "true" ]]; then
|
if [[ "$backitup" == "true" ]]; then
|
||||||
echo -n "IOB_BACKITUP_EXTDB is \"true\". Unlocking features..."
|
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 "Done."
|
||||||
echo " "
|
echo " "
|
||||||
fi
|
fi
|
||||||
@@ -460,17 +477,6 @@ elif [[ "$avahi" = "true" ]]; then
|
|||||||
echo " "
|
echo " "
|
||||||
fi
|
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
|
# checking ENV for USBDEVICES
|
||||||
if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
||||||
echo "USBDEVICES is set."
|
echo "USBDEVICES is set."
|
||||||
@@ -486,7 +492,7 @@ if [[ "$usbdevices" != "" && "$usbdevices" != "none" ]]; then
|
|||||||
else
|
else
|
||||||
echo "Looks like the device \"""$i""\" does not exist."
|
echo "Looks like the device \"""$i""\" does not exist."
|
||||||
echo "Did you mount it correctly by using the \"--device\" option?"
|
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
|
stop_on_error
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -501,31 +507,38 @@ if [[ $(find /opt/userscripts -type f | wc -l) -lt 1 ]]; then
|
|||||||
chmod 755 /opt/userscripts/userscript_everystart_example.sh
|
chmod 755 /opt/userscripts/userscript_everystart_example.sh
|
||||||
echo "Done."
|
echo "Done."
|
||||||
elif [[ -f /opt/userscripts/userscript_firststart.sh || -f /opt/userscripts/userscript_everystart.sh ]]; then
|
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 "Userscript for first start detected and this is the first start of a new container."
|
||||||
echo "Running userscript_firststart.sh... "
|
echo "Running userscript_firststart.sh... "
|
||||||
chmod 755 /opt/userscripts/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 "Done."
|
echo "Failed."
|
||||||
|
else
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ -f /opt/userscripts/userscript_everystart.sh ]]; then
|
if [[ -f /opt/userscripts/userscript_everystart.sh ]]; then
|
||||||
echo "Userscript for every start detected. Running userscript_everystart.sh... "
|
echo "Userscript for every start detected. Running userscript_everystart.sh... "
|
||||||
chmod 755 /opt/userscripts/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 "Done."
|
echo "Failed."
|
||||||
|
else
|
||||||
|
echo "Done."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
echo " "
|
||||||
fi
|
fi
|
||||||
echo " "
|
|
||||||
|
|
||||||
# Removing first run an fresh install markers when exists
|
# 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
|
if [[ -f /opt/iobroker/.fresh_install ]]; then rm -f /opt/iobroker/.fresh_install; fi
|
||||||
|
|
||||||
#####
|
#####
|
||||||
# STEP 5 - Starting ioBroker
|
# STEP 5 - Starting ioBroker
|
||||||
#####
|
#####
|
||||||
echo "$(printf -- '-%.0s' {1..80})"
|
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 "$(printf -- '-%.0s' {1..80})"
|
||||||
echo " "
|
echo " "
|
||||||
echo "Starting ioBroker... "
|
echo "Starting ioBroker... "
|
||||||
@@ -533,7 +546,7 @@ echo " "
|
|||||||
echo "##### #### ### ## # iobroker.js-controller log output # ## ### #### #####"
|
echo "##### #### ### ## # iobroker.js-controller log output # ## ### #### #####"
|
||||||
|
|
||||||
# Setting healthcheck status to "running"
|
# 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
|
# Function for graceful shutdown by SIGTERM signal
|
||||||
shut_down() {
|
shut_down() {
|
||||||
@@ -578,4 +591,4 @@ trap 'shut_down' SIGTERM
|
|||||||
gosu iobroker node node_modules/iobroker.js-controller/controller.js & wait
|
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)
|
# 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
|
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)
|
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
|
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 text
|
||||||
display_help() {
|
display_help() {
|
||||||
echo "This script helps you manage your ioBroker container!"
|
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 " off > switches mantenance mode OFF and stops or restarts the container"
|
||||||
echo " upgrade > puts the container to maintenance mode and upgrades ioBroker"
|
echo " upgrade > puts the container to maintenance mode and upgrades ioBroker"
|
||||||
echo " restart > stops iobroker and stops or restarts the container"
|
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 " help > shows this help"
|
||||||
echo " "
|
echo " "
|
||||||
echo "OPTIONS"
|
echo "OPTIONS"
|
||||||
@@ -104,7 +109,7 @@ disable_maintenance() {
|
|||||||
|
|
||||||
echo "Deactivating maintenance mode and forcing container to stop or restart..."
|
echo "Deactivating maintenance mode and forcing container to stop or restart..."
|
||||||
echo "stopping" > "$healthcheck"
|
echo "stopping" > "$healthcheck"
|
||||||
gosu root pkill -u root
|
pkill -u iobroker
|
||||||
echo "Done."
|
echo "Done."
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,7 +146,7 @@ upgrade_jscontroller() {
|
|||||||
echo "Container will be stopped or restarted in 5 seconds..."
|
echo "Container will be stopped or restarted in 5 seconds..."
|
||||||
sleep 5
|
sleep 5
|
||||||
echo "stopping" > "$healthcheck"
|
echo "stopping" > "$healthcheck"
|
||||||
gosu root pkill -u root
|
pkill -u iobroker
|
||||||
}
|
}
|
||||||
|
|
||||||
# stop iobroker and wait until all processes stopped or pkill_timeout is reached
|
# stop iobroker and wait until all processes stopped or pkill_timeout is reached
|
||||||
@@ -159,12 +164,12 @@ stop_iob() {
|
|||||||
|
|
||||||
if [[ "$killbyname" != yes ]]; then
|
if [[ "$killbyname" != yes ]]; then
|
||||||
# pgrep exits with status 1 when there are no matches
|
# 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
|
if (($(date +%s) > timeout)); then
|
||||||
echo -e "\nTimeout reached. Killing remaining processes..."
|
echo -e "\nTimeout reached. Killing remaining processes..."
|
||||||
pgrep --list-full -u iobroker
|
pgrep --list-full -u iobroker -f 'io\..'
|
||||||
pkill --signal SIGKILL -u iobroker -f 'io.'
|
pkill --signal SIGKILL -u iobroker -f 'io\..'
|
||||||
echo "\nDone."
|
echo "Done."
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
@@ -178,6 +183,7 @@ stop_iob() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "Done."
|
echo -e "Done."
|
||||||
|
echo " "
|
||||||
}
|
}
|
||||||
|
|
||||||
# restart container
|
# restart container
|
||||||
@@ -204,64 +210,13 @@ restart_container() {
|
|||||||
echo "Container will be stopped or restarted in 5 seconds..."
|
echo "Container will be stopped or restarted in 5 seconds..."
|
||||||
sleep 5
|
sleep 5
|
||||||
echo "stopping" > "$healthcheck"
|
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() {
|
restore_iobroker() {
|
||||||
echo "You are now going to perform a restore of your iobroker."
|
echo "Due to changes in ioBroker backup structure, restoring is no longer supported by this script."
|
||||||
echo "During the restore process, the container will automatically switch into maintenance mode and stop ioBroker."
|
echo "Please use the original ioBroker commands or the graphical ui of backitup adapter."
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# parsing commands and options
|
# parsing commands and options
|
||||||
@@ -309,4 +264,4 @@ for arg in "$@"; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
"${run[@]}"
|
"${run[@]}"
|
||||||
@@ -1,13 +1,15 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
if [ -e /usr/sbin/avahi-daemon ] && [ -e /var/run/dbus ]
|
||||||
then
|
then
|
||||||
echo "[setup_avahi.sh] Avahi is already installed. Nothing to do here."
|
echo "[setup_avahi.sh] Avahi is already installed. Nothing to do here."
|
||||||
else
|
else
|
||||||
echo -n "[setup_avahi.sh] Avahi-daemon is NOT installed. Going to install it now... "
|
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 -q 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
|
apt-get -q -y --no-install-recommends install 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
|
# 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 "Done."
|
||||||
echo -n "[setup_avahi.sh] Configuring avahi-daemon... "
|
echo -n "[setup_avahi.sh] Configuring avahi-daemon... "
|
||||||
sed -i '/^rlimit-nproc/s/^\(.*\)/#\1/g' /etc/avahi/avahi-daemon.conf
|
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 "Done."
|
||||||
|
|
||||||
echo -n "[setup_avahi.sh] Starting avahi-daemon... "
|
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."
|
echo "Done."
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# reading env
|
# reading env
|
||||||
debug=$DEBUG
|
debug=$DEBUG
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# bash strict mode
|
# bash strict mode
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -58,7 +58,7 @@ if [[ "$1" == "-install" ]]; then
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
elif [[ "$1" == "-update" ]]; then
|
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
|
apt-get -q update >> /opt/scripts/setup_packages.log 2>&1
|
||||||
return1=$?
|
return1=$?
|
||||||
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
apt-get -q -y upgrade >> /opt/scripts/setup_packages.log 2>&1
|
||||||
@@ -78,7 +78,6 @@ fi
|
|||||||
|
|
||||||
# Silent Cleanup
|
# Silent Cleanup
|
||||||
apt-get -qq autoclean -y && apt-get -qq autoremove && apt-get -qq clean
|
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 -rf /tmp/* /var/tmp/* /root/.cache/* /var/lib/apt/lists/* || true
|
||||||
rm -f /opt/scripts/.packages /opt/scripts/.docker_config/.packages
|
|
||||||
|
|
||||||
exit 0
|
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/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/issues)
|
||||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
[](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)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||||
[](https://github.com/buanet/ioBroker.docker)
|
[](https://github.com/buanet/ioBroker.docker)
|
||||||
[](https://github.com/buanet/ioBroker.docker/network)
|
[](https://github.com/buanet/ioBroker.docker/network)
|
||||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||||
[](https://paypal.me/buanet)
|
[](https://paypal.me/buanet)
|
||||||
|
|
||||||
# Important note
|
# 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
|
# Quick reference
|
||||||
|
|
||||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
* 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)
|
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||||
* Supported architectures: amd64, arm32v7, arm64v8
|
* Supported architectures: amd64, arm32v7, arm64v8
|
||||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
* 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.
|
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
|
### Node 22 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)
|
* [`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)
|
||||||
* [`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 16 versions
|
### Node 20 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)
|
* [`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)
|
||||||
* [`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)
|
|
||||||
|
|
||||||
# What is ioBroker?
|
# What is ioBroker?
|
||||||
|
|
||||||
IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
IoBroker is an open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
||||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.<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).
|
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||||
|
|
||||||
# How to use this image?
|
# 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
|
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
|
||||||
|
|
||||||
```
|
For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:
|
||||||
version: '2'
|
|
||||||
|
|
||||||
|
```yaml
|
||||||
services:
|
services:
|
||||||
iobroker:
|
iobroker:
|
||||||
container_name: iobroker
|
container_name: iobroker
|
||||||
@@ -75,72 +72,84 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "8081:8081"
|
- "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
|
-v iobrokerdata:/opt/iobroker
|
||||||
```
|
```
|
||||||
On docker-compose add
|
**Docker Compose:**
|
||||||
```
|
```yaml
|
||||||
volumes:
|
volumes:
|
||||||
- iobrokerdata:/opt/iobroker
|
- 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_ADMINPORT` (optional, default: 8081) – Set ioBroker admin port 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_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 "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
- `IOB_MULTIHOST` (optional) – Set to "master" or "slave" for multihost support (requires 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_TYPE` (optional, default: jsonl) – Type of objects DB: "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_HOST` (optional, default: 127.0.0.1) – Host for objects DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
- `IOB_OBJECTSDB_PORT` (optional, default: 9001) – Port for objects DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_OBJECTSDB_PASS` (optional) Set authentication for Redis db connection
|
- `IOB_OBJECTSDB_PASS` (optional) – Password for Redis DB
|
||||||
* `IOB_OBJECTSDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel CLuster db
|
- `IOB_OBJECTSDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||||
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
- `IOB_STATESDB_TYPE` (optional, default: jsonl) – Type of states DB: "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_HOST` (optional, default: 127.0.0.1) – Host for states DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
- `IOB_STATESDB_PORT` (optional, default: 9000) – Port for states DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_STATESDB_PASS` (optional, default: 9000) Set authentication for Redis db connection
|
- `IOB_STATESDB_PASS` (optional) – Password for Redis DB
|
||||||
* `IOB_STATESDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel cluster db
|
- `IOB_STATESDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||||
|
|
||||||
### Activate special features:
|
### Special Features
|
||||||
|
|
||||||
* `AVAHI` (optional) Set `true` to install and activate avahi-daemon for supporting yahka adapter
|
- `AVAHI` (optional) – Set `true` to install and activate avahi-daemon (for yahka adapter support)
|
||||||
* `ZWAVE` (optional) Set `true` to install openzwave to support zwave adapter
|
|
||||||
|
|
||||||
### Configure environment:
|
### Environment Configuration
|
||||||
|
|
||||||
* `DEBUG` (optional) Set `true` to get extended logging messages on container startup
|
- `DEBUG` (optional) – Set `true` for extended logging on container startup
|
||||||
* `LANG` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
- `LANG` (optional, default: de_DE.UTF-8) – 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
|
- `LANGUAGE` (optional, default: de_DE:de) – 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
|
- `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
|
- `OFFLINE_MODE` (optional) – Set `true` if your container has no or limited internet connection
|
||||||
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
- `PACKAGES` (optional) – Install additional Linux packages (space-separated list)
|
||||||
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
- `PACKAGES_UPDATE` (optional) – Set `true` to update Linux packages on first start
|
||||||
* `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
|
- `PERMISSION_CHECK` (optional, default: true) – Set "false" to skip permission checks/corrections (use at your own risk)
|
||||||
* `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
|
- `SETGID` (default: 1000) – Set the GID for the iobroker user (to match a group on the host)
|
||||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
|
- `SETUID` (default: 1000) – Set the UID for the iobroker user (to match a user on the host)
|
||||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like `/dev/ttyACM0` (inside the container), for more than one device separate with ";"
|
- `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>
|
A bridge network works for most adapters if you map all required ports.
|
||||||
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>
|
However, some adapters require [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for device discovery.
|
||||||
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.
|
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
|
# 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. :)
|
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/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/issues)
|
||||||
[](https://github.com/buanet/ioBroker.docker/pulls)
|
[](https://github.com/buanet/ioBroker.docker/pulls)
|
||||||
[](https://github.com/buanet/ioBroker.docker/discussions)<br>
|
[](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)
|
||||||
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
[](https://hub.docker.com/repository/docker/buanet/iobroker)<br>
|
||||||
[](https://github.com/buanet/ioBroker.docker)
|
[](https://github.com/buanet/ioBroker.docker)
|
||||||
[](https://github.com/buanet/ioBroker.docker/network)
|
[](https://github.com/buanet/ioBroker.docker/network)
|
||||||
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
[](https://github.com/buanet/ioBroker.docker/stargazers)
|
||||||
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
[](https://github.com/buanet/ioBroker.docker/blob/master/LICENSE.md)
|
||||||
[](https://paypal.me/buanet)
|
[](https://paypal.me/buanet)
|
||||||
|
|
||||||
# Important note
|
# 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
|
# Quick reference
|
||||||
|
|
||||||
* Maintained by: [buanet](https://github.com/buanet) and [ioBroker](https://github.com/ioBroker)
|
* 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)
|
* Where to report issues: [Github Repository Issues](https://github.com/buanet/ioBroker.docker/issues)
|
||||||
* Supported architectures: amd64, arm32v7, arm64v8
|
* Supported architectures: amd64, arm32v7, arm64v8
|
||||||
* Changelog: [Github Repository Changelog](https://github.com/buanet/ioBroker.docker/blob/main/CHANGELOG.md)
|
* 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.
|
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
|
### Node 22 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)
|
* [`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)
|
||||||
* [`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 16 versions
|
### Node 20 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)
|
* [`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)
|
||||||
* [`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)
|
|
||||||
|
|
||||||
# What is ioBroker?
|
# What is ioBroker?
|
||||||
|
|
||||||
IoBroker is a open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
IoBroker is an open source IoT platform written in JavaScript that easily connects smarthome components from different manufactures. With the help of plugins (called: "adapters") ioBroker is able to communicate with a big variety of IoT hardware and services using different protocols and APIs.<br>
|
||||||
All data is stored in a central database that all adapters can access. With this it is very easy to build up logical connections, automation scripts and beautiful visualisations.<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).
|
For further details please check out [iobroker.net](https://www.iobroker.net).
|
||||||
|
|
||||||
# How to use this image?
|
# 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
|
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
|
||||||
|
|
||||||
```
|
For a persistent and production-ready setup, use Docker Compose and mount a volume for your data:
|
||||||
version: '2'
|
|
||||||
|
|
||||||
|
```yaml
|
||||||
services:
|
services:
|
||||||
iobroker:
|
iobroker:
|
||||||
container_name: iobroker
|
container_name: iobroker
|
||||||
@@ -77,72 +74,84 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "8081:8081"
|
- "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
|
-v iobrokerdata:/opt/iobroker
|
||||||
```
|
```
|
||||||
On docker-compose add
|
**Docker Compose:**
|
||||||
```
|
```yaml
|
||||||
volumes:
|
volumes:
|
||||||
- iobrokerdata:/opt/iobroker
|
- 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_ADMINPORT` (optional, default: 8081) – Set ioBroker admin port 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_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 "master" or "slave" for multihost support (needs additional config for objectsdb and statesdb!)
|
- `IOB_MULTIHOST` (optional) – Set to "master" or "slave" for multihost support (requires 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_TYPE` (optional, default: jsonl) – Type of objects DB: "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_HOST` (optional, default: 127.0.0.1) – Host for objects DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_OBJECTSDB_PORT` (optional, default: 9001) Set port for ioBroker objects db, supports comma separated list for Redis Sentinel Cluster
|
- `IOB_OBJECTSDB_PORT` (optional, default: 9001) – Port for objects DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_OBJECTSDB_PASS` (optional) Set authentication for Redis db connection
|
- `IOB_OBJECTSDB_PASS` (optional) – Password for Redis DB
|
||||||
* `IOB_OBJECTSDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel CLuster db
|
- `IOB_OBJECTSDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||||
* `IOB_STATESDB_TYPE` (optional, default: jsonl) Set type of ioBroker states db, could be "jsonl", "file" (deprecated) or "redis"
|
- `IOB_STATESDB_TYPE` (optional, default: jsonl) – Type of states DB: "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_HOST` (optional, default: 127.0.0.1) – Host for states DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_STATESDB_PORT` (optional, default: 9000) Set port for ioBroker states db, supports comma separated list for Redis Sentinel Cluster
|
- `IOB_STATESDB_PORT` (optional, default: 9000) – Port for states DB (comma-separated for Redis Sentinel)
|
||||||
* `IOB_STATESDB_PASS` (optional, default: 9000) Set authentication for Redis db connection
|
- `IOB_STATESDB_PASS` (optional) – Password for Redis DB
|
||||||
* `IOB_STATESDB_NAME` (optional, default: mymaster) Set name for Redis Sentinel cluster db
|
- `IOB_STATESDB_NAME` (optional, default: mymaster) – Redis Sentinel DB name
|
||||||
|
|
||||||
### Activate special features:
|
### Special Features
|
||||||
|
|
||||||
* `AVAHI` (optional) Set `true` to install and activate avahi-daemon for supporting yahka adapter
|
- `AVAHI` (optional) – Set `true` to install and activate avahi-daemon (for yahka adapter support)
|
||||||
* `ZWAVE` (optional) Set `true` to install openzwave to support zwave adapter
|
|
||||||
|
|
||||||
### Configure environment:
|
### Environment Configuration
|
||||||
|
|
||||||
* `DEBUG` (optional) Set `true` to get extended logging messages on container startup
|
- `DEBUG` (optional) – Set `true` for extended logging on container startup
|
||||||
* `LANG` (optional, default: de_DE.UTF-8) The following locales are pre-generated: de_DE.UTF-8, en_US.UTF-8
|
- `LANG` (optional, default: de_DE.UTF-8) – 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
|
- `LANGUAGE` (optional, default: de_DE:de) – 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
|
- `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
|
- `OFFLINE_MODE` (optional) – Set `true` if your container has no or limited internet connection
|
||||||
* `PACKAGES` (optional) Install additional linux packages to your container, packages should be separated by whitespace like this: `package1 package2 package3`.
|
- `PACKAGES` (optional) – Install additional Linux packages (space-separated list)
|
||||||
* `PERMISSION_CHECK` (optional, default: true) Set "false" to skip checking and correcting all relevant permissions on container startup (Use at own risk!!!)
|
- `PACKAGES_UPDATE` (optional) – Set `true` to update Linux packages on first start
|
||||||
* `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
|
- `PERMISSION_CHECK` (optional, default: true) – Set "false" to skip permission checks/corrections (use at your own risk)
|
||||||
* `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
|
- `SETGID` (default: 1000) – Set the GID for the iobroker user (to match a group on the host)
|
||||||
* `TZ` (optional, default: Europe/Berlin) Specifies the time zone, could be all valid Linux timezones
|
- `SETUID` (default: 1000) – Set the UID for the iobroker user (to match a user on the host)
|
||||||
* `USBDEVICES` (optional) Set relevant permissions on mounted devices like `/dev/ttyACM0` (inside the container), for more than one device separate with ";"
|
- `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>
|
A bridge network works for most adapters if you map all required ports.
|
||||||
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>
|
However, some adapters require [Multicast](https://en.wikipedia.org/wiki/Multicast) or [Broadcast](https://en.wikipedia.org/wiki/Broadcasting_(networking)) for device discovery.
|
||||||
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.
|
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
|
# 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. :)
|
See you soon. :)
|
||||||
|
|||||||
Reference in New Issue
Block a user