Compare commits

...

419 Commits

Author SHA1 Message Date
LinuxServer-CI
7fe3c9daa3
Bot Updating Package Versions 2026-03-06 15:43:21 +00:00
LinuxServer-CI
b87d1acab4
Bot Updating Package Versions 2026-02-27 15:42:59 +00:00
LinuxServer-CI
04400f29d2
Bot Updating Package Versions 2026-02-20 15:41:54 +00:00
LinuxServer-CI
a96ae68b7a
Bot Updating Package Versions 2026-02-13 15:45:57 +00:00
LinuxServer-CI
55bdc3a48a
Bot Updating Templated Files 2026-02-13 15:37:29 +00:00
LinuxServer-CI
64743bfdab
Bot Updating Package Versions 2026-02-06 15:42:49 +00:00
LinuxServer-CI
41fd41aa80
Bot Updating Package Versions 2026-01-30 15:42:20 +00:00
LinuxServer-CI
9a143ca7d1
Bot Updating Package Versions 2026-01-23 15:43:13 +00:00
LinuxServer-CI
75c6f5a9c0
Bot Updating Package Versions 2026-01-16 15:43:03 +00:00
LinuxServer-CI
ce1652ec5a
Bot Updating Package Versions 2026-01-09 15:42:40 +00:00
LinuxServer-CI
4a4826e928
Bot Updating Package Versions 2026-01-02 15:42:22 +00:00
LinuxServer-CI
c168559cae
Bot Updating Package Versions 2025-12-26 15:42:10 +00:00
thelamer
235ede51f5
remove sandbox user from pacman.conf on arm 2025-12-20 09:43:55 -05:00
LinuxServer-CI
704ab56283
Bot Updating Package Versions 2025-12-19 15:42:29 +00:00
LinuxServer-CI
5627f4aef9
Bot Updating Package Versions 2025-12-12 15:42:48 +00:00
LinuxServer-CI
111714ec5a
Bot Updating Package Versions 2025-12-05 15:42:26 +00:00
LinuxServer-CI
912ade0c8f
Bot Updating Package Versions 2025-11-28 15:41:54 +00:00
LinuxServer-CI
a8ca6cbb8e
Bot Updating Templated Files 2025-11-21 15:37:39 +00:00
LinuxServer-CI
42a311cf17
Bot Updating Package Versions 2025-11-16 15:43:33 +00:00
thelamer
e02af33ee2 use arch baseimage to pacstrap on x86_64 2025-11-16 10:37:02 -05:00
Adam
b72f0a251b
Merge pull request #38 from linuxserver/custom-files-x 2025-11-15 10:05:49 +00:00
thespad
892694d503
Bump s6 2025-11-11 21:19:43 +00:00
thespad
123d73772f
Check custom files are executable before running 2025-11-11 20:56:40 +00:00
LinuxServer-CI
047442e227
Bot Updating Templated Files 2025-10-24 14:38:02 +00:00
LinuxServer-CI
e92780040f
Bot Updating Package Versions 2025-10-17 14:42:09 +00:00
LinuxServer-CI
96650fd4d1
Bot Updating Package Versions 2025-10-03 14:44:57 +00:00
LinuxServer-CI
8cf7897186
Bot Updating Package Versions 2025-09-26 14:42:35 +00:00
LinuxServer-CI
46b3869ff0
Bot Updating Package Versions 2025-09-19 14:42:28 +00:00
LinuxServer-CI
c6008c1bd5
Bot Updating Package Versions 2025-09-12 14:42:09 +00:00
LinuxServer-CI
424f7ebd48
Bot Updating Package Versions 2025-09-05 14:47:25 +00:00
LinuxServer-CI
0c64e7aa42
Bot Updating Package Versions 2025-08-30 14:10:29 +00:00
LinuxServer-CI
ad15783a97
Bot Updating Package Versions 2025-08-29 14:42:24 +00:00
LinuxServer-CI
3016427cc6
Bot Updating Package Versions 2025-08-22 14:42:14 +00:00
LinuxServer-CI
ea9927eaee
Bot Updating Package Versions 2025-08-15 14:44:28 +00:00
LinuxServer-CI
30483b988e
Bot Updating Package Versions 2025-08-08 14:43:42 +00:00
LinuxServer-CI
5cf8d51122
Bot Updating Package Versions 2025-08-01 14:42:53 +00:00
LinuxServer-CI
3d53b0a4ff
Bot Updating Package Versions 2025-07-18 14:43:16 +00:00
LinuxServer-CI
d228227ad1
Bot Updating Package Versions 2025-07-12 19:16:32 +00:00
LinuxServer-CI
33d245f1eb
Bot Updating Package Versions 2025-07-11 14:42:28 +00:00
LinuxServer-CI
795c96a119
Bot Updating Package Versions 2025-07-04 14:47:37 +00:00
LinuxServer-CI
7cbb47531d
Bot Updating Templated Files 2025-07-04 14:40:51 +00:00
LinuxServer-CI
42d6f5e7d0
Bot Updating Templated Files 2025-07-04 14:38:09 +00:00
LinuxServer-CI
c1c5f46ee1
Bot Updating Package Versions 2025-06-27 14:42:38 +00:00
LinuxServer-CI
56a32c5adc
Bot Updating Package Versions 2025-06-20 14:46:59 +00:00
LinuxServer-CI
a01f761bb7
Bot Updating Package Versions 2025-06-13 14:43:55 +00:00
LinuxServer-CI
fda10ed1a2
Bot Updating Templated Files 2025-06-13 14:37:50 +00:00
LinuxServer-CI
87487e0b3a
Bot Updating Package Versions 2025-06-06 14:42:19 +00:00
LinuxServer-CI
e3af2280de
Bot Updating Package Versions 2025-05-30 14:41:41 +00:00
LinuxServer-CI
d3024359a2
Bot Updating Package Versions 2025-05-23 14:41:32 +00:00
aptalca
b02b234cad
Merge pull request #37 from linuxserver/arch-dev-perms
arch: add device perm fixing to base
2025-05-16 14:50:01 -04:00
aptalca
0f0e06c5c0
run only when env is set 2025-05-16 12:39:19 -04:00
aptalca
6555957b0c
add device perm fixing to base 2025-05-16 12:03:52 -04:00
LinuxServer-CI
2f760461e7
Bot Updating Package Versions 2025-05-16 14:42:18 +00:00
LinuxServer-CI
55757bab18
Bot Updating Package Versions 2025-05-09 14:42:18 +00:00
LinuxServer-CI
5c99c8d6c5
Bot Updating Package Versions 2025-05-02 14:43:20 +00:00
LinuxServer-CI
29b3ad35a5
Bot Updating Package Versions 2025-04-25 14:41:41 +00:00
LinuxServer-CI
c641e5c9a1
Bot Updating Package Versions 2025-04-18 14:43:11 +00:00
LinuxServer-CI
101b788163
Bot Updating Package Versions 2025-04-13 11:07:20 +00:00
Adam
a695170ff1
Merge pull request #36 from linuxserver/master-usermod
Switch abc home to avoid chown penalty
2025-04-13 12:01:43 +01:00
LinuxServer-CI
37fec0546e
Bot Updating Package Versions 2025-04-11 14:42:14 +00:00
thespad
b176f5c58a
Switch abc home to avoid chown penalty 2025-04-08 20:42:01 +01:00
LinuxServer-CI
5d2b574148
Bot Updating Package Versions 2025-04-04 14:43:16 +00:00
LinuxServer-CI
61070f5cd0
Bot Updating Package Versions 2025-03-28 15:42:36 +00:00
LinuxServer-CI
64d28b227f
Bot Updating Package Versions 2025-03-21 15:41:47 +00:00
LinuxServer-CI
0aaaefbd31
Bot Updating Package Versions 2025-03-14 15:42:09 +00:00
LinuxServer-CI
83f421f03d
Bot Updating Package Versions 2025-03-07 15:42:18 +00:00
LinuxServer-CI
ebf269d076
Bot Updating Package Versions 2025-02-28 15:42:57 +00:00
LinuxServer-CI
fc7c20adf7
Bot Updating Package Versions 2025-02-21 15:41:26 +00:00
LinuxServer-CI
62eef98602
Bot Updating Package Versions 2025-02-14 15:44:46 +00:00
LinuxServer-CI
0e1a67a33e
Bot Updating Templated Files 2025-02-14 15:37:28 +00:00
LinuxServer-CI
d166a6ba04
Bot Updating Package Versions 2025-02-07 15:41:17 +00:00
LinuxServer-CI
8f2c7a2c6f
Bot Updating Package Versions 2025-01-31 15:52:19 +00:00
LinuxServer-CI
9efa8fe513
Bot Updating Templated Files 2025-01-31 15:46:40 +00:00
LinuxServer-CI
4cd33e2cfb
Bot Updating Templated Files 2025-01-31 15:45:31 +00:00
LinuxServer-CI
4ece0f2c90
Bot Updating Package Versions 2025-01-24 15:42:26 +00:00
LinuxServer-CI
27257f47da
Bot Updating Package Versions 2025-01-19 10:58:17 +00:00
Adam
c4812eb8af
Merge pull request #35 from linuxserver/new-readme
Update readme with new style
2025-01-19 10:51:04 +00:00
thespad
65de4f021f
Update readme with new style 2025-01-17 19:46:01 +00:00
LinuxServer-CI
784d624e43
Bot Updating Package Versions 2025-01-17 15:42:09 +00:00
LinuxServer-CI
be36c5958e
Bot Updating Package Versions 2025-01-10 15:41:23 +00:00
LinuxServer-CI
7e4fcef3e0
Bot Updating Package Versions 2025-01-03 15:41:38 +00:00
LinuxServer-CI
eb8dea4017
Bot Updating Package Versions 2024-12-27 15:42:06 +00:00
LinuxServer-CI
a3f4c175bf
Bot Updating Package Versions 2024-12-20 15:47:10 +00:00
LinuxServer-CI
b50ebeaf08
Bot Updating Templated Files 2024-12-20 15:40:41 +00:00
LinuxServer-CI
b6d15f9899
Bot Updating Templated Files 2024-12-20 15:37:37 +00:00
LinuxServer-CI
e9aea2f8a3
Bot Updating Package Versions 2024-12-13 15:42:13 +00:00
LinuxServer-CI
f659b277fe
Bot Updating Package Versions 2024-12-10 11:32:09 +00:00
LinuxServer-CI
1a08790554
Bot Updating Templated Files 2024-12-10 11:26:20 +00:00
Adam
ef6255f0c3
Merge pull request #34 from linuxserver/master-alpine3 2024-12-10 11:23:43 +00:00
LinuxServer-CI
db4d5aa3a9
Bot Updating Package Versions 2024-12-06 15:44:19 +00:00
LinuxServer-CI
985eb302f8
Bot Updating Templated Files 2024-12-06 15:38:50 +00:00
LinuxServer-CI
ccde16b53e
Bot Updating Templated Files 2024-12-06 15:37:32 +00:00
thespad
52b05cc0c6
Use alpine3 for rootfs stage, bump s6, tidy init 2024-12-06 14:16:10 +00:00
LinuxServer-CI
d936d2a62d
Bot Updating Package Versions 2024-11-29 15:41:34 +00:00
LinuxServer-CI
2625e7fe7c
Bot Updating Package Versions 2024-11-15 15:47:38 +00:00
LinuxServer-CI
797dcfcae2
Bot Updating Templated Files 2024-11-15 15:39:01 +00:00
LinuxServer-CI
3ef9b0ad8b
Bot Updating Templated Files 2024-11-15 15:37:27 +00:00
LinuxServer-CI
35abecaf5e
Bot Updating Package Versions 2024-11-08 15:43:32 +00:00
LinuxServer-CI
ec6e7b9978
Bot Updating Package Versions 2024-11-01 15:41:54 +00:00
LinuxServer-CI
9552e71ed5
Bot Updating Package Versions 2024-10-25 14:41:26 +00:00
LinuxServer-CI
809f045e30
Bot Updating Package Versions 2024-10-18 14:41:49 +00:00
LinuxServer-CI
e4f45f608b
Bot Updating Package Versions 2024-10-04 14:42:47 +00:00
LinuxServer-CI
5d19b0e3db
Bot Updating Package Versions 2024-09-28 21:35:57 +00:00
LinuxServer-CI
f55fd38a15
Bot Updating Templated Files 2024-09-28 21:31:08 +00:00
LinuxServer-CI
c564654e43
Bot Updating Package Versions 2024-09-27 14:46:30 +00:00
LinuxServer-CI
fefa20e455
Bot Updating Templated Files 2024-09-27 14:41:25 +00:00
LinuxServer-CI
41d3beb237
Bot Updating Templated Files 2024-09-27 14:39:41 +00:00
LinuxServer-CI
1b1d7a8a98
Bot Updating Templated Files 2024-09-27 14:37:33 +00:00
LinuxServer-CI
e0ac5e7206
Bot Updating Package Versions 2024-09-23 01:34:54 +00:00
thelamer
d5ffe3ae7f remove users groupadd as it is in the raball 2024-09-23 01:29:32 +00:00
LinuxServer-CI
5078a23653
Bot Updating Package Versions 2024-09-13 14:40:44 +00:00
LinuxServer-CI
d03be1d25a
Bot Updating Package Versions 2024-09-06 14:40:46 +00:00
LinuxServer-CI
8ced8ab09f
Bot Updating Package Versions 2024-08-30 14:41:54 +00:00
LinuxServer-CI
63653a7796
Bot Updating Package Versions 2024-08-23 14:45:27 +00:00
LinuxServer-CI
4d4c2e3b23
Bot Updating Templated Files 2024-08-23 14:39:23 +00:00
LinuxServer-CI
bfac8c5b24 Bot Updating Templated Files 2024-08-23 14:37:59 +00:00
LinuxServer-CI
5b600a739e Bot Updating Package Versions 2024-08-16 14:40:51 +00:00
LinuxServer-CI
990d5f0814 Bot Updating Package Versions 2024-08-09 14:40:20 +00:00
LinuxServer-CI
9233837e28 Bot Updating Package Versions 2024-08-02 14:41:40 +00:00
LinuxServer-CI
1c03c8e4b9 Bot Updating Package Versions 2024-07-26 14:41:52 +00:00
LinuxServer-CI
0fbe55dded Bot Updating Package Versions 2024-07-19 14:43:56 +00:00
LinuxServer-CI
8c830cad0d Bot Updating Templated Files 2024-07-19 14:38:47 +00:00
LinuxServer-CI
c81eb1acce Bot Updating Templated Files 2024-07-19 14:37:14 +00:00
LinuxServer-CI
ddcf7cb929 Bot Updating Package Versions 2024-07-12 14:40:58 +00:00
LinuxServer-CI
8553491bd0 Bot Updating Package Versions 2024-07-05 14:41:15 +00:00
LinuxServer-CI
83255a931d Bot Updating Package Versions 2024-06-28 14:42:42 +00:00
LinuxServer-CI
c01e051e1e Bot Updating Package Versions 2024-06-21 14:41:01 +00:00
LinuxServer-CI
4e26d1e187 Bot Updating Package Versions 2024-06-14 14:40:50 +00:00
LinuxServer-CI
d9761a0980 Bot Updating Package Versions 2024-06-12 15:58:25 +00:00
LinuxServer-CI
22c43a1048 Bot Updating Templated Files 2024-06-12 15:51:29 +00:00
Adam
764afc1a02
Merge pull request #32 from linuxserver/master-lsiown
Copy lsiown from repo
2024-06-12 16:49:09 +01:00
thespad
6b95e0516c
Copy lsiown from repo 2024-06-10 15:54:37 +01:00
LinuxServer-CI
eb24e63a20 Bot Updating Package Versions 2024-06-07 14:41:02 +00:00
LinuxServer-CI
2e31f27d5c Bot Updating Package Versions 2024-05-31 14:41:04 +00:00
LinuxServer-CI
03228ac40b Bot Updating Package Versions 2024-05-24 14:42:35 +00:00
LinuxServer-CI
3a170bc1fa Bot Updating Package Versions 2024-05-23 19:49:28 +00:00
Adam
e232100874
Merge pull request #31 from linuxserver/master-init-version
Output image version on init if present
2024-05-23 20:43:53 +01:00
thespad
9de3d2c25d
Output image version on init if present 2024-05-23 20:06:18 +01:00
LinuxServer-CI
fa889b738f Bot Updating Package Versions 2024-05-22 23:25:56 +00:00
LinuxServer-CI
218e4a7359 Bot Updating Templated Files 2024-05-22 23:20:43 +00:00
LinuxServer-CI
3db4953a1c Bot Updating Package Versions 2024-05-17 14:41:04 +00:00
LinuxServer-CI
b1ce14a928 Bot Updating Package Versions 2024-05-14 12:30:51 +00:00
Roxedus
25dd905e87
Merge pull request #30 from linuxserver/master-remove-arm-warning 2024-05-14 14:23:26 +02:00
thespad
4c207ce585
Remove armhf warning 2024-05-12 15:07:42 +01:00
LinuxServer-CI
1e82539de2 Bot Updating Package Versions 2024-05-10 14:42:37 +00:00
LinuxServer-CI
d67df7af1b Bot Updating Package Versions 2024-05-06 19:59:11 +00:00
Roxedus
a5a5f50eb3
Merge pull request #29 from linuxserver/master-catatonit 2024-05-06 21:52:29 +02:00
Roxedus
18277ad740
Add Catatonit 2024-05-06 20:53:57 +02:00
LinuxServer-CI
82332f8ba6 Bot Updating Package Versions 2024-05-03 14:42:46 +00:00
LinuxServer-CI
86323a591b Bot Updating Templated Files 2024-05-03 14:37:37 +00:00
LinuxServer-CI
5e3a1c74b2 Bot Updating Package Versions 2024-04-26 14:43:05 +00:00
LinuxServer-CI
e9f2f61894 Bot Updating Package Versions 2024-04-19 14:43:24 +00:00
LinuxServer-CI
ea35cf7194 Bot Updating Package Versions 2024-04-13 19:45:29 +00:00
LinuxServer-CI
73c7b2c1dc Bot Updating Templated Files 2024-04-13 19:40:12 +00:00
Homer
777abe7326
Merge pull request #28 from linuxserver/readme-update
Update readme-vars.yml
2024-04-13 20:38:38 +01:00
Homer
83dabd2bad
Update readme-vars.yml 2024-04-13 16:23:05 +01:00
LinuxServer-CI
b75b8ee56e Bot Updating Package Versions 2024-04-12 14:42:31 +00:00
LinuxServer-CI
fb5376c467 Bot Updating Package Versions 2024-04-05 14:41:39 +00:00
LinuxServer-CI
46d8aa28c1 Bot Updating Package Versions 2024-03-29 15:42:05 +00:00
LinuxServer-CI
62d8d1ebf9 Bot Updating Package Versions 2024-03-22 15:43:26 +00:00
LinuxServer-CI
4223fb4c44 Bot Updating Package Versions 2024-03-19 17:34:43 +00:00
Adam
c29733aa46
Merge pull request #26 from linuxserver/master-s6up
Bump s6 to 3.1.6.2
2024-03-19 17:28:01 +00:00
TheSpad
5448f595bc
Bump s6 to 3.1.6.2 2024-03-19 15:20:27 +00:00
LinuxServer-CI
26cd05a59a Bot Updating Package Versions 2024-03-15 15:43:52 +00:00
LinuxServer-CI
e5351b3695 Bot Updating Templated Files 2024-03-15 15:37:33 +00:00
LinuxServer-CI
cd32299642 Bot Updating Package Versions 2024-03-08 15:44:44 +00:00
LinuxServer-CI
2610e0c3ba Bot Updating Package Versions 2024-03-01 15:41:30 +00:00
LinuxServer-CI
a135d9e3b4 Bot Updating Package Versions 2024-02-23 15:46:09 +00:00
LinuxServer-CI
d135408728 Bot Updating Templated Files 2024-02-23 15:40:45 +00:00
LinuxServer-CI
add0278d75 Bot Updating Templated Files 2024-02-23 15:37:38 +00:00
LinuxServer-CI
db01202881 Bot Updating Package Versions 2024-02-16 15:43:05 +00:00
LinuxServer-CI
2cd19ad7e3 Bot Updating Package Versions 2024-02-09 15:42:54 +00:00
LinuxServer-CI
2295ca64a0 Bot Updating Package Versions 2024-02-02 15:41:13 +00:00
LinuxServer-CI
ff49f69453 Bot Updating Package Versions 2024-01-26 15:41:02 +00:00
LinuxServer-CI
3daae0e94a Bot Updating Package Versions 2024-01-19 15:42:47 +00:00
LinuxServer-CI
66394bdabc Bot Updating Package Versions 2024-01-12 15:45:17 +00:00
LinuxServer-CI
bf4f26baf4 Bot Updating Templated Files 2024-01-12 15:37:40 +00:00
LinuxServer-CI
2530089a84 Bot Updating Package Versions 2024-01-05 15:41:51 +00:00
LinuxServer-CI
fe2c5f9845 Bot Updating Package Versions 2023-12-29 15:43:10 +00:00
LinuxServer-CI
495d2abfa3 Bot Updating Package Versions 2023-12-22 15:41:27 +00:00
LinuxServer-CI
80380d34ee Bot Updating Package Versions 2023-12-15 15:41:45 +00:00
thelamer
614692ad1e use keyring from tarball and stop generating a second time 2023-12-12 11:15:54 -08:00
thelamer
28703fdb35 bump alpine verison in file stage and trigger another build 2023-12-08 09:39:50 -08:00
LinuxServer-CI
9982408a73 Bot Updating Package Versions 2023-12-08 15:41:15 +00:00
LinuxServer-CI
53e0ba1e29 Bot Updating Package Versions 2023-12-01 15:40:57 +00:00
LinuxServer-CI
2cbd344278 Bot Updating Package Versions 2023-11-24 15:42:04 +00:00
LinuxServer-CI
cbb98ed3fe Bot Updating Package Versions 2023-11-20 18:01:39 +00:00
Eric Nemchik
7f2b03df93
Merge pull request #25 from linuxserver/master-cron-user-file
Add cron user file
2023-11-20 11:56:40 -06:00
Eric Nemchik
924a2047e4
Merge pull request #24 from linuxserver/master-etc-cron
Import crontabs from etc
2023-11-20 11:56:01 -06:00
Eric Nemchik
1177c6e211
Add cron user file
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-20 11:04:53 -06:00
Eric Nemchik
060cd0ad98
Import crontabs from etc
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-19 14:34:26 -06:00
LinuxServer-CI
1995119f0b Bot Updating Package Versions 2023-11-17 15:42:05 +00:00
Eric Nemchik
5020887cc1
Merge pull request #23 from linuxserver/silent-cron
silent cron
2023-11-11 15:30:31 -06:00
Adam
49018909a6
Merge pull request #22 from linuxserver/master-secrets 2023-11-11 21:18:42 +00:00
TheSpad
59693fa2e2
!0 instead of 1 2023-11-11 20:02:46 +00:00
Eric Nemchik
9a370cbe6b
silent cron
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-11 11:04:13 -06:00
TheSpad
4e98e3d93a
Warn rather than sanitize 2023-11-11 10:38:51 +00:00
LinuxServer-CI
d79e4c0f6f Bot Updating Package Versions 2023-11-10 15:41:02 +00:00
TheSpad
eacc55142f
Default to sanitizing newlines in secrets 2023-11-10 14:46:16 +00:00
LinuxServer-CI
939f93c24c Bot Updating Package Versions 2023-11-03 15:42:48 +00:00
Eric Nemchik
58b8f68ffb
Merge pull request #21 from linuxserver/master-cron-redirect-stderr
Redirect stderr from cron
2023-11-02 16:13:21 -05:00
Eric Nemchik
9e2bf4c2a3
Redirect stderr from cron 2023-11-02 17:28:03 +00:00
LinuxServer-CI
d43406e512 Bot Updating Package Versions 2023-11-02 16:13:46 +00:00
Eric Nemchik
270c967895
Merge pull request #20 from linuxserver/standard-cron
standard cron
2023-11-02 11:08:33 -05:00
LinuxServer-CI
60a5e3f31c Bot Updating Package Versions 2023-10-27 14:40:47 +00:00
LinuxServer-CI
b52fefb89f Bot Updating Package Versions 2023-10-20 14:41:00 +00:00
LinuxServer-CI
1e977253ca Bot Updating Package Versions 2023-10-13 14:44:45 +00:00
LinuxServer-CI
bd8fb4b645 Bot Updating Templated Files 2023-10-13 14:39:50 +00:00
LinuxServer-CI
df51697b04 Bot Updating Templated Files 2023-10-13 14:38:15 +00:00
LinuxServer-CI
043ce6b9b7 Bot Updating Package Versions 2023-10-06 14:43:37 +00:00
LinuxServer-CI
c5e821a34e Bot Updating Package Versions 2023-09-29 14:42:12 +00:00
LinuxServer-CI
e59a74d638 Bot Updating Package Versions 2023-09-22 14:41:29 +00:00
LinuxServer-CI
034a425f20 Bot Updating Package Versions 2023-09-15 14:42:45 +00:00
LinuxServer-CI
81fbb37441 Bot Updating Package Versions 2023-09-08 14:47:46 +00:00
LinuxServer-CI
e09492e9de Bot Updating Package Versions 2023-09-08 14:41:50 +00:00
LinuxServer-CI
f11ee368aa Bot Updating Package Versions 2023-09-01 14:42:25 +00:00
LinuxServer-CI
a372d61561 Bot Updating Package Versions 2023-08-25 14:42:19 +00:00
Eric Nemchik
a888f12e20
cron in base
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-08-18 23:06:26 -05:00
LinuxServer-CI
0b93cd2867 Bot Updating Package Versions 2023-08-18 14:42:51 +00:00
LinuxServer-CI
040c99c76f Bot Updating Package Versions 2023-08-11 14:41:31 +00:00
LinuxServer-CI
3c97a61dbe Bot Updating Package Versions 2023-08-04 14:41:44 +00:00
Eric Nemchik
3d2b4c30ba
Fix line endings
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-07-30 10:28:41 -05:00
Eric Nemchik
733103cefd
Move busybox install to pacstrap-stage
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-07-30 10:09:13 -05:00
Eric Nemchik
1ad3202c36
Fix perms
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-07-30 09:48:14 -05:00
Eric Nemchik
744b903506
Include busybox (for crond)
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-07-30 01:06:51 -05:00
LinuxServer-CI
f9cca003fb Bot Updating Package Versions 2023-07-28 14:41:39 +00:00
LinuxServer-CI
8325db5ed1 Bot Updating Package Versions 2023-07-21 14:42:24 +00:00
LinuxServer-CI
aac7730244 Bot Updating Package Versions 2023-07-14 14:41:58 +00:00
LinuxServer-CI
65c74ce5df Bot Updating Package Versions 2023-07-07 14:46:17 +00:00
LinuxServer-CI
aca31bd0ad Bot Updating Templated Files 2023-07-07 14:39:29 +00:00
LinuxServer-CI
b9f0d690bd Bot Updating Templated Files 2023-07-07 14:38:08 +00:00
LinuxServer-CI
7bf1c9e440 Bot Updating Package Versions 2023-06-30 14:43:23 +00:00
LinuxServer-CI
2382e58a97 Bot Updating Package Versions 2023-06-23 14:43:25 +00:00
LinuxServer-CI
1fd4cbce9a Bot Updating Package Versions 2023-06-16 14:43:30 +00:00
LinuxServer-CI
a75f9741e8 Bot Updating Package Versions 2023-06-09 14:43:12 +00:00
LinuxServer-CI
e5e267fb79 Bot Updating Package Versions 2023-06-02 14:43:51 +00:00
LinuxServer-CI
dd5dbf9b92 Bot Updating Package Versions 2023-05-26 14:46:54 +00:00
LinuxServer-CI
d7e7cc2b0b Bot Updating Templated Files 2023-05-26 14:38:01 +00:00
LinuxServer-CI
e79813efeb Bot Updating Package Versions 2023-05-19 14:45:12 +00:00
LinuxServer-CI
cab9ee463b Bot Updating Package Versions 2023-05-16 16:08:24 +00:00
Adam
3724fe6f9e
Merge pull request #19 from linuxserver/master-s6bump 2023-05-16 16:55:51 +01:00
TheSpad
1cb5c85175
Externalise package-install 2023-05-16 10:45:08 +01:00
TheSpad
44412479dd
Create lsiopy venv folder and envs 2023-05-15 21:04:22 +01:00
TheSpad
c8cd20549d
Bump s6 to 3.1.5.0 2023-05-12 19:53:39 +01:00
LinuxServer-CI
92c7549052 Bot Updating Package Versions 2023-05-12 14:44:06 +00:00
LinuxServer-CI
5b5217ea42 Bot Updating Package Versions 2023-05-05 14:44:00 +00:00
LinuxServer-CI
39de01a3e9 Bot Updating Package Versions 2023-04-28 14:48:31 +00:00
LinuxServer-CI
19ed7c0362 Bot Updating Templated Files 2023-04-28 14:37:49 +00:00
LinuxServer-CI
dbc85b9547 Bot Updating Templated Files 2023-04-28 14:36:50 +00:00
LinuxServer-CI
f24d797efa Bot Updating Package Versions 2023-04-21 14:44:31 +00:00
LinuxServer-CI
3332626b5e Bot Updating Package Versions 2023-04-12 23:47:15 +02:00
Adam
cba8ce842a
Merge pull request #18 from linuxserver/master-armhf-notice 2023-04-12 22:38:53 +01:00
TheSpad
4f85409197
Add armhf deprecation notice 2023-04-12 21:25:12 +01:00
LinuxServer-CI
83868121e9 Bot Updating Package Versions 2023-04-07 16:48:24 +02:00
LinuxServer-CI
fc0a3f0fa9 Bot Updating Templated Files 2023-04-07 16:40:27 +02:00
LinuxServer-CI
851f065889 Bot Updating Templated Files 2023-04-07 16:38:58 +02:00
LinuxServer-CI
ad58577223 Bot Updating Templated Files 2023-04-07 09:37:23 -05:00
LinuxServer-CI
6d6bd6adb5 Bot Updating Package Versions 2023-03-31 09:47:49 -05:00
LinuxServer-CI
77cb3c5711 Bot Updating Package Versions 2023-03-24 10:46:56 -05:00
LinuxServer-CI
649ab3f43d Bot Updating Package Versions 2023-03-17 16:44:02 +01:00
LinuxServer-CI
e45b6cb35b Bot Updating Package Versions 2023-03-10 09:44:27 -06:00
LinuxServer-CI
75a3d7067a Bot Updating Package Versions 2023-03-01 15:07:50 -06:00
LinuxServer-CI
77bfb8e1cd Bot Updating Templated Files 2023-03-01 22:00:56 +01:00
Adam
814aaf543e
Merge pull request #17 from linuxserver/master-branding 2023-03-01 20:59:27 +00:00
TheSpad
4fc836c2d6
Custom branding 2023-03-01 11:30:28 +00:00
TheSpad
7a81614dc7
Rename CI check 2023-03-01 11:29:33 +00:00
TheSpad
6c7f76b8d8
Remove copied contenv, source from mods now 2023-03-01 11:29:16 +00:00
TheSpad
9699cd1b18
Remove legacy /run symlink hack 2023-03-01 11:29:08 +00:00
LinuxServer-CI
eecff560c6 Bot Updating Package Versions 2023-02-24 16:45:07 +01:00
LinuxServer-CI
03a82dead2 Bot Updating Package Versions 2023-02-17 10:19:54 -06:00
LinuxServer-CI
abd80e33da Bot Updating Templated Files 2023-02-17 09:39:01 -06:00
LinuxServer-CI
745efbe21d Bot Updating Templated Files 2023-02-17 16:37:19 +01:00
LinuxServer-CI
df0cef10b0 Bot Updating Package Versions 2023-02-10 09:46:47 -06:00
LinuxServer-CI
ce0061794f Bot Updating Package Versions 2023-02-03 09:46:29 -06:00
LinuxServer-CI
f9c905b843 Bot Updating Package Versions 2023-01-27 16:42:56 +01:00
LinuxServer-CI
b30aeae48b Bot Updating Package Versions 2023-01-20 15:42:57 +00:00
LinuxServer-CI
bbb4282984 Bot Updating Package Versions 2023-01-13 16:42:13 +01:00
LinuxServer-CI
49683799c3 Bot Updating Package Versions 2023-01-06 16:47:19 +01:00
LinuxServer-CI
60817c143e Bot Updating Package Versions 2023-01-02 08:55:08 -06:00
Adam
4ebeecfb51
Merge pull request #16 from linuxserver/master-legacy-scripts
Remove legacy scripts check
2023-01-02 14:40:35 +00:00
LinuxServer-CI
905cc05792 Bot Updating Package Versions 2022-12-30 16:44:54 +01:00
LinuxServer-CI
ef9a4777b3 Bot Updating Package Versions 2022-12-23 16:42:44 +01:00
LinuxServer-CI
1962b31b0c Bot Updating Package Versions 2022-12-16 09:42:23 -06:00
TheSpad
303201a1d3
Remove legacy custom file handlers 2022-12-10 18:23:46 +00:00
TheSpad
2ccf81f8e6
Arch tarball doesn't work with busybox tar 2022-12-10 17:19:18 +00:00
TheSpad
ec0f63e65a
Remove legacy scripts check 2022-12-10 17:14:40 +00:00
TheSpad
b17668838f
Minor Dockerfile optimisations 2022-12-10 17:14:32 +00:00
LinuxServer-CI
097981ce21 Bot Updating Package Versions 2022-12-09 09:42:14 -06:00
LinuxServer-CI
990dfebf25 Bot Updating Package Versions 2022-12-02 16:46:02 +01:00
LinuxServer-CI
6a73f14cab Bot Updating Templated Files 2022-12-02 16:40:03 +01:00
LinuxServer-CI
6193d23a6d Bot Updating Templated Files 2022-12-02 09:38:49 -06:00
LinuxServer-CI
346bcc4773 Bot Updating Templated Files 2022-12-02 09:37:30 -06:00
LinuxServer-CI
7ffb476542 Bot Updating Package Versions 2022-11-27 00:54:16 +01:00
LinuxServer-CI
cdde99a00c Bot Updating Package Versions 2022-11-23 15:52:15 -06:00
Adam
5570ac1182
Merge pull request #15 from linuxserver/buildkit-master 2022-11-23 21:45:55 +00:00
TheSpad
b16d96d84e
chmod docker-mods script on ADD 2022-11-23 19:27:23 +00:00
aptalca
fa63df67c8
Merge pull request #14 from linuxserver/dateversion
set the release tag to build date
2022-11-20 16:16:39 -05:00
aptalca
43feaa1eba set the release tag to build date 2022-11-20 14:23:22 -05:00
LinuxServer-CI
bdbac18bd4 Bot Updating Package Versions 2022-11-18 20:43:17 +01:00
LinuxServer-CI
b1ba16d17c Bot Updating Package Versions 2022-11-15 07:59:56 -06:00
LinuxServer-CI
7f5a865dfe Bot Updating Package Versions 2022-11-01 15:17:29 +01:00
LinuxServer-CI
1b0e4bca2e Bot Updating Package Versions 2022-10-25 09:31:04 -05:00
LinuxServer-CI
b53eb6e0b2 Bot Updating Package Versions 2022-10-17 20:07:50 +02:00
Adam
69ab399fec
Make arch fully v3 compliant (#11) 2022-10-17 18:52:58 +01:00
LinuxServer-CI
7521397a82 Bot Updating Package Versions 2022-10-11 16:26:20 +02:00
LinuxServer-CI
f6cebf35a6 Bot Updating Package Versions 2022-10-04 09:31:19 -05:00
LinuxServer-CI
301bc0ab5f Bot Updating Package Versions 2022-09-27 16:25:27 +02:00
LinuxServer-CI
47445fc01f Bot Updating Package Versions 2022-09-20 09:35:04 -05:00
LinuxServer-CI
4b37f2aef3 Bot Updating Templated Files 2022-09-20 16:20:36 +02:00
LinuxServer-CI
7def99ab76 Bot Updating Package Versions 2022-09-13 07:11:42 -05:00
Eric Nemchik
fa6be31260
Merge pull request #13 from linuxserver/custom-svc-clean-arch
Remove custom svc from user bundle
2022-09-13 07:00:53 -05:00
TheSpad
0fe96ebbc9
Remove custom svc from user bundle 2022-09-13 11:25:14 +01:00
LinuxServer-CI
6fac508df9 Bot Updating Package Versions 2022-09-10 04:54:19 -05:00
Adam
89452d88d9
Merge pull request #12 from linuxserver/arch-custom-rework 2022-09-10 10:45:41 +01:00
TheSpad
03abd080e3
Remove the *old* scripts dir, not the new one 2022-09-09 16:27:16 +01:00
LinuxServer-CI
19f5bf032e Bot Updating Package Versions 2022-09-06 16:13:55 +02:00
TheSpad
e57df71201
Fix package install logic 2022-09-06 11:08:41 +01:00
TheSpad
2ae5367b69
Rework legacy custom file handling 2022-09-05 17:58:45 +01:00
LinuxServer-CI
4ce31bdb42 Bot Updating Package Versions 2022-09-03 14:53:46 +02:00
LinuxServer-CI
9d1deff435 Bot Updating Package Versions 2022-09-03 14:45:40 +02:00
aptalca
d5f7dbb775
Merge pull request #10 from linuxserver/custom-user-bundle
Add custom services to user bundle
2022-09-03 08:36:47 -04:00
TheSpad
8131e9c8fc
Add custom services to user bundle 2022-09-03 11:11:00 +01:00
LinuxServer-CI
89cb7cdf03 Bot Updating Package Versions 2022-09-02 09:04:53 -05:00
Adam
1eeaa6f2bc
Merge pull request #9 from linuxserver/fix-custom-svc-logic 2022-09-02 14:56:30 +01:00
TheSpad
3e036e05f2
Fix custom service logic 2022-09-02 11:13:53 +01:00
LinuxServer-CI
a5c283d8bb Bot Updating Package Versions 2022-08-30 16:09:04 +02:00
LinuxServer-CI
9942591145 Bot Updating Package Versions 2022-08-28 16:41:52 -05:00
Eric Nemchik
d49387f058
Merge pull request #8 from linuxserver/new-custom-files-arch
Support new custom files locations
2022-08-28 16:33:39 -05:00
TheSpad
ea6f00a960
Support new custom files locations 2022-08-28 21:29:07 +01:00
LinuxServer-CI
c78a9485b3 Bot Updating Package Versions 2022-08-23 09:04:04 -05:00
LinuxServer-CI
c998f494cf Bot Updating Package Versions 2022-08-16 09:01:56 -05:00
Adam
cd544ff1e1
Merge pull request #6 from linuxserver/mod-package-arch 2022-08-09 19:55:13 +01:00
TheSpad
60f71d17c1
Merge branch 'master' into mod-package-arch 2022-08-09 18:40:09 +01:00
LinuxServer-CI
4dfaf16086 Bot Updating Package Versions 2022-08-09 19:38:45 +02:00
thelamer
cda29c9fd8 wrong base OS from copy and paste 2022-08-09 13:30:27 -04:00
ryan.kuba
768d8f3ce4 load the arch keyrings for arm from git and install the keyring on x86 2022-08-09 13:30:27 -04:00
TheSpad
be16fe16e6
Support universal mod package install 2022-07-29 17:44:20 +01:00
aptalca
0ce4afdde5
Merge pull request #5 from linuxserver/mod-init-arch
Add mod-init
2022-07-26 12:38:38 -04:00
LinuxServer-CI
f24b2285e2 Bot Updating Package Versions 2022-07-26 16:05:09 +02:00
TheSpad
f3ee5a1691
Add init-services anchor 2022-07-23 12:57:12 +01:00
TheSpad
dba0b09b95
Add mod-init 2022-07-22 20:58:16 +01:00
Adam
67d6743aa5
Merge pull request #4 from linuxserver/hybrid-mods-arch 2022-07-22 20:06:17 +01:00
TheSpad
8bade2a65b
Fix indentation 2022-07-22 15:47:52 +01:00
TheSpad
f3f8bbfda8
Support hybrid mods 2022-07-22 15:39:07 +01:00
LinuxServer-CI
2949c43af6 Bot Updating Package Versions 2022-07-19 16:06:10 +02:00
LinuxServer-CI
a03af498b1 Bot Updating Package Versions 2022-07-12 09:18:49 -05:00
Adam
a27cdf56ea
Merge pull request #3 from linuxserver/s6-3.1.0.1-arch 2022-07-05 22:10:06 +01:00
LinuxServer-CI
c2607bebe7 Bot Updating Package Versions 2022-07-05 16:12:25 +02:00
TheSpad
79c1015d5a
Add Arch logic back into docker-mods 2022-07-05 14:48:15 +01:00
LinuxServer-CI
2e39904f80 Bot Updating Package Versions 2022-06-28 09:03:00 -05:00
LinuxServer-CI
1616b48023 Bot Updating Package Versions 2022-06-21 16:04:52 +02:00
TheSpad
6429f8711d
Fix umask handling 2022-06-20 20:01:16 +01:00
TheSpad
de879a3f80
Fix s6 arch for arm 2022-06-15 15:37:10 +01:00
TheSpad
af89087530
Set s6 service max timeout to 0 2022-06-14 17:06:47 +01:00
LinuxServer-CI
53529420df Bot Updating Package Versions 2022-06-14 09:00:23 -05:00
LinuxServer-CI
e6c6f1f9f1 Bot Updating Package Versions 2022-06-07 09:49:11 -05:00
TheSpad
9aaaaac79e
Trailing newline 2022-06-03 17:32:13 +01:00
TheSpad
1186f03b66
Add compatibility shim for v2 scandir 2022-06-03 14:38:41 +01:00
LinuxServer-CI
6703a25bcb Bot Updating Package Versions 2022-05-31 16:05:04 +02:00
TheSpad
639bb02a93
Initial s6 v3 commit 2022-05-29 21:48:25 +01:00
LinuxServer-CI
86a3d66bc3 Bot Updating Package Versions 2022-05-24 09:04:18 -05:00
LinuxServer-CI
80a2c5f355 Bot Updating Package Versions 2022-05-17 16:06:32 +02:00
LinuxServer-CI
b5f0b27a87 Bot Updating Package Versions 2022-05-03 09:09:31 -05:00
LinuxServer-CI
abcb565a56 Bot Updating Package Versions 2022-05-03 02:17:58 +02:00
thelamer
ef85d04285 support new zst format for x86 2022-05-02 20:09:59 -04:00
LinuxServer-CI
5cadb149cb Bot Updating Package Versions 2022-04-12 09:00:38 -05:00
LinuxServer-CI
69160e622d Bot Updating Package Versions 2022-04-05 09:00:46 -05:00
LinuxServer-CI
d090a0cd41 Bot Updating Package Versions 2022-03-29 09:00:57 -05:00
LinuxServer-CI
ff85f4b473 Bot Updating Package Versions 2022-03-22 15:00:52 +01:00
LinuxServer-CI
03fdc2df10 Bot Updating Package Versions 2022-03-15 09:01:32 -05:00
LinuxServer-CI
bbb82dfd3c Bot Updating Package Versions 2022-03-08 15:01:08 +01:00
LinuxServer-CI
62cffc860d Bot Updating Package Versions 2022-03-07 22:46:13 +01:00
LinuxServer-CI
0fd50987a2 Bot Updating Package Versions 2022-03-01 15:01:41 +01:00
LinuxServer-CI
0d0ea73dee Bot Updating Package Versions 2022-02-22 15:01:08 +01:00
LinuxServer-CI
8442fdfc0f Bot Updating Package Versions 2022-02-15 15:01:44 +01:00
LinuxServer-CI
8811ed4a2b Bot Updating Package Versions 2022-02-13 19:47:55 +01:00
LinuxServer-CI
696d96a001 Bot Updating Package Versions 2022-02-08 15:01:35 +01:00
LinuxServer-CI
b3c1094c99 Bot Updating Package Versions 2022-02-01 15:00:30 +01:00
LinuxServer-CI
c0502c3719 Bot Updating Package Versions 2022-01-25 15:01:41 +01:00
LinuxServer-CI
aac5437d50 Bot Updating Package Versions 2022-01-18 15:01:16 +01:00
LinuxServer-CI
509eaf9814 Bot Updating Package Versions 2022-01-11 15:00:19 +01:00
LinuxServer-CI
42c48befc9 Bot Updating Package Versions 2022-01-04 15:00:19 +01:00
LinuxServer-CI
37d137ac05 Bot Updating Package Versions 2021-12-28 15:00:42 +01:00
LinuxServer-CI
2cd8156549 Bot Updating Package Versions 2021-12-21 15:09:36 +01:00
LinuxServer-CI
89cbd41621 Bot Updating Templated Files 2021-12-21 14:58:25 +01:00
LinuxServer-CI
45fe0b36b9 Bot Updating Package Versions 2021-12-14 15:03:10 +01:00
LinuxServer-CI
4f98e7eb40 Bot Updating Package Versions 2021-12-07 15:00:37 +01:00
LinuxServer-CI
c59ff53eb5 Bot Updating Package Versions 2021-11-30 15:01:16 +01:00
LinuxServer-CI
15962c6900 Bot Updating Package Versions 2021-11-23 15:00:28 +01:00
LinuxServer-CI
f6363690f7 Bot Updating Package Versions 2021-11-16 15:00:27 +01:00
LinuxServer-CI
419eb762bd Bot Updating Package Versions 2021-11-09 15:00:38 +01:00
LinuxServer-CI
579f0b97b2 Bot Updating Package Versions 2021-11-02 15:00:13 +01:00
LinuxServer-CI
9e05402e22 Bot Updating Package Versions 2021-10-26 16:00:48 +02:00
LinuxServer-CI
fe8869e36b Bot Updating Package Versions 2021-10-19 16:00:14 +02:00
LinuxServer-CI
2cedb93913 Bot Updating Package Versions 2021-10-12 16:00:42 +02:00
LinuxServer-CI
17db7f51b5 Bot Updating Package Versions 2021-10-05 17:57:31 +02:00
LinuxServer-CI
4088c146ac Bot Updating Templated Files 2021-10-05 17:22:36 +02:00
LinuxServer-CI
8ae30db327 Bot Updating Package Versions 2021-09-28 16:00:32 +02:00
thelamer
7e6c1faa98 Merge branch 'master' of github.com:linuxserver/docker-baseimage-arch 2021-09-26 19:03:31 -07:00
thelamer
da7af985f9 remove cleanup statement for pacman 2021-09-26 19:03:19 -07:00
LinuxServer-CI
329c8d0a68 Bot Updating Package Versions 2021-09-26 22:17:45 +02:00
thelamer
346231e198 generate default UTF-8 locale on build 2021-09-26 12:58:58 -07:00
thelamer
341798a198 Merge branch 'master' of github.com:linuxserver/docker-baseimage-arch 2021-09-25 16:38:27 -07:00
thelamer
dca7764736 revert mirror changes 2021-09-25 16:38:00 -07:00
LinuxServer-CI
95149176a3 Bot Updating Package Versions 2021-09-25 23:35:36 +02:00
thelamer
6a1fbff913 manually define arm mirrors to enable fallbacks with the 4 US servers 2021-09-25 14:18:05 -07:00
LinuxServer-CI
65f22b9c36 Bot Updating Package Versions 2021-09-24 23:46:55 +02:00
thelamer
b43fed916f add some default image cleanup commands 2021-09-24 14:25:52 -07:00
thelamer
695423f751 add some default image cleanup commands 2021-09-24 14:25:38 -07:00
thelamer
42d02842aa move chmod logic to init 2021-09-22 14:18:45 -07:00
LinuxServer-CI
739de89fb6 Bot Updating Package Versions 2021-09-22 22:27:00 +02:00
thelamer
2d5e355193 styling 2021-09-22 13:10:20 -07:00
thelamer
7fa0e0331c cleanup bad perms from git 2021-09-22 13:07:53 -07:00
LinuxServer-CI
ba2a2da9e9 Bot Updating Package Versions 2021-09-14 16:05:10 +02:00
LinuxServer-CI
c473921b9e Bot Updating Package Versions 2021-09-07 16:00:34 +02:00
LinuxServer-CI
2db61ef8c6 Bot Updating Package Versions 2021-08-31 16:35:03 +02:00
LinuxServer-CI
07f89f4a5f Bot Updating Templated Files 2021-08-31 15:59:30 +02:00
LinuxServer-CI
0a51e85063 Bot Updating Package Versions 2021-08-24 16:17:46 +02:00
LinuxServer-CI
95730d82ff Bot Updating Package Versions 2021-08-10 16:18:16 +02:00
99 changed files with 1523 additions and 1051 deletions

View File

@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
[{**.sh,root/etc/cont-init.d/**,root/etc/services.d/**}] [{**.sh,root/etc/s6-overlay/s6-rc.d/**,root/etc/cont-init.d/**,root/etc/services.d/**}]
indent_style = space indent_style = space
indent_size = 4 indent_size = 4

View File

@ -6,7 +6,7 @@
* Read, and fill the Pull Request template * Read, and fill the Pull Request template
* If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR * If this is a fix for a typo (in code, documentation, or the README) please file an issue and let us sort it out. We do not need a PR
* If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn) * If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://linuxserver.io/discord)
## Common files ## Common files
@ -105,10 +105,10 @@ docker build \
-t linuxserver/baseimage-arch:latest . -t linuxserver/baseimage-arch:latest .
``` ```
The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static` The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
```bash ```bash
docker run --rm --privileged multiarch/qemu-user-static:register --reset docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
``` ```
Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`. Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.

View File

@ -1,7 +1,7 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: Discord chat support - name: Discord chat support
url: https://discord.gg/YWrKVTn url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team. about: Realtime support / chat with the community and the team.
- name: Discourse discussion forum - name: Discourse discussion forum

View File

@ -1,40 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- Provide a general summary of the bug in the Title above -->
------------------------------
## Expected Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Steps to Reproduce
<!--- Provide a link to a live example, or an unambiguous set of steps to -->
<!--- reproduce this bug. Include code to reproduce, if relevant -->
1.
2.
3.
4.
## Environment
**OS:**
**CPU architecture:** x86_64/arm32/arm64
**How docker service was installed:**
<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
<!--- Providing context helps us come up with a solution that is most useful in the real world -->
## Command used to create docker container (run/create/compose/screenshot)
<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
## Docker logs
<!--- Provide a full docker log, output of "docker logs baseimage-arch" -->

68
.github/ISSUE_TEMPLATE/issue.bug.yml vendored Executable file
View File

@ -0,0 +1,68 @@
# Based on the issue template
name: Bug report
description: Create a report to help us improve
title: "[BUG] <title>"
labels: [Bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: Tell us what happens instead of the expected behavior.
validations:
required: true
- type: textarea
attributes:
label: Expected Behavior
description: Tell us what should happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
2. With this config...
3. Run '...'
4. See error...
validations:
required: true
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **How docker service was installed**: distro's packagemanager
value: |
- OS:
- How docker service was installed:
render: markdown
validations:
required: false
- type: textarea
attributes:
label: Docker creation
description: |
Command used to create docker container
Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
render: bash
validations:
required: true
- type: textarea
attributes:
description: |
Provide a full docker log, output of "docker logs baseimage-arch"
label: Container logs
placeholder: |
Output of `docker logs baseimage-arch`
render: bash
validations:
required: true

View File

@ -1,25 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
---
[linuxserverurl]: https://linuxserver.io
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
<!--- Provide a general summary of the request in the Title above -->
------------------------------
## Desired Behavior
<!--- Tell us what should happen -->
## Current Behavior
<!--- Tell us what happens instead of the expected behavior -->
## Alternatives Considered
<!--- Tell us what other options you have tried or considered -->

31
.github/ISSUE_TEMPLATE/issue.feature.yml vendored Executable file
View File

@ -0,0 +1,31 @@
# Based on the issue template
name: Feature request
description: Suggest an idea for this project
title: "[FEAT] <title>"
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Is this a new feature request?
description: Please search to see if a feature request already exists.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Wanted change
description: Tell us what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Reason for change
description: Justify your request, why do you want it, what is the benefit.
validations:
required: true
- type: textarea
attributes:
label: Proposed code change
description: Do you have a potential code change in mind?
validations:
required: false

19
.github/workflows/call_issue_pr_tracker.yml vendored Executable file
View File

@ -0,0 +1,19 @@
name: Issue & PR Tracker
on:
issues:
types: [opened,reopened,labeled,unlabeled,closed]
pull_request_target:
types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
pull_request_review:
types: [submitted,edited,dismissed]
permissions:
contents: read
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

16
.github/workflows/call_issues_cron.yml vendored Executable file
View File

@ -0,0 +1,16 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: '21 23 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
stale:
permissions:
issues: write
pull-requests: write
uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
secrets: inherit

View File

@ -3,14 +3,145 @@ name: External Trigger Main
on: on:
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-master: external-trigger-master:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.3.3 - uses: actions/checkout@v4.1.1
- name: External Trigger - name: External Trigger
if: github.ref == 'refs/heads/master' if: github.ref == 'refs/heads/master'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: | run: |
echo "**** No external release, exiting ****" printf "# External trigger for docker-baseimage-arch\n\n" >> $GITHUB_STEP_SUMMARY
if grep -q "^baseimage-arch_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`baseimage-arch_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
elif grep -q "^baseimage-arch_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`baseimage-arch_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0 exit 0
fi
echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> External trigger running off of master branch. To disable this trigger, add \`baseimage-arch_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
EXT_RELEASE=$(echo $(date +%F))
echo "Type is \`custom_version_command\`" >> $GITHUB_STEP_SUMMARY
if grep -q "^baseimage-arch_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
exit 0
fi
if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve external version for baseimage-arch branch master"
GHA_TRIGGER_URL="https://github.com/linuxserver/docker-baseimage-arch/actions/runs/${{ github.run_id }}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
image="linuxserver/baseimage-arch"
tag="latest"
token=$(curl -sX GET \
"https://ghcr.io/token?scope=repository%3Alinuxserver%2Fbaseimage-arch%3Apull" \
| jq -r '.token')
multidigest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.index.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${tag}")
if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# If there's a layer element it's a single-arch manifest so just get that digest
digest=$(jq -r '.config.digest' <<< "${multidigest}")
else
# Otherwise it's multi-arch or has manifest annotations
if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
# Check for manifest annotations and delete if found
multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
fi
if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
# If there's still more than one digest, it's multi-arch
multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
else
# Otherwise it's single arch
multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
fi
if digest=$(curl -s \
--header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
--header "Accept: application/vnd.oci.image.manifest.v1+json" \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
digest=$(jq -r '.config.digest' <<< "${digest}");
fi
fi
image_info=$(curl -sL \
--header "Authorization: Bearer ${token}" \
"https://ghcr.io/v2/${image}/blobs/${digest}")
if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
image_info=$(echo $image_info | jq -r '.config')
else
image_info=$(echo $image_info | jq -r '.container_config')
fi
IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
if [ -z "${IMAGE_VERSION}" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="Can't retrieve last pushed version for baseimage-arch tag latest"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
exit 1
fi
echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-arch/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
exit 0
else
if [[ "${artifacts_found}" == "false" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
FAILURE_REASON="New version ${EXT_RELEASE} for baseimage-arch tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
else
printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
if [[ "${artifacts_found}" == "true" ]]; then
echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
fi
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-arch/job/master/buildWithParameters?PACKAGE_CHECK=false \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"
echo "**** Notifying Discord ****"
TRIGGER_REASON="A version change was detected for baseimage-arch tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi
fi

View File

@ -2,42 +2,47 @@ name: External Trigger Scheduler
on: on:
schedule: schedule:
- cron: '33 * * * *' - cron: '39 * * * *'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
external-trigger-scheduler: external-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.3.3 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'
- name: External Trigger Scheduler - name: External Trigger Scheduler
run: | run: |
echo "**** Branches found: ****" printf "# External trigger scheduler for docker-baseimage-arch\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
echo "**** Pulling the yq docker image ****" for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/jenkins-vars.yml \ continue
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) fi
if [ "$br" == "$ls_branch" ]; then printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
echo "**** Branch ${br} appears to be live; checking workflow. ****" ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/jenkins-vars.yml)
ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****." echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \ curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \ -H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \ -H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \ -d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-baseimage-arch/actions/workflows/external_trigger.yml/dispatches https://api.github.com/repos/linuxserver/docker-baseimage-arch/actions/workflows/external_trigger.yml/dispatches
else else
echo "**** Workflow doesn't exist; skipping trigger. ****" echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi fi
else else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****" echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
fi fi
done done

View File

@ -2,12 +2,18 @@ name: Greetings
on: [pull_request_target, issues] on: [pull_request_target, issues]
permissions:
contents: read
jobs: jobs:
greeting: greeting:
permissions:
issues: write
pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/first-interaction@v1 - uses: actions/first-interaction@v1
with: with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-arch/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-baseimage-arch/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!' issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-arch/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!' pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-arch/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }} repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,38 +0,0 @@
name: Package Trigger Main
on:
workflow_dispatch:
jobs:
package-trigger-master:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- name: Package Trigger
if: github.ref == 'refs/heads/master'
run: |
if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ARCH_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ARCH_MASTER is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-arch/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
exit 0
fi
echo "**** Package trigger running off of master branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ARCH_MASTER\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-arch/job/master/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
echo "**** Jenkins job queue url: ${response%$'\r'} ****"
echo "**** Sleeping 10 seconds until job starts ****"
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "**** Jenkins job build url: ${buildurl} ****"
echo "**** Attempting to change the Jenkins job description ****"
curl -iX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"

View File

@ -2,49 +2,102 @@ name: Package Trigger Scheduler
on: on:
schedule: schedule:
- cron: '55 13 * * 2' - cron: '24 21 * * 6'
workflow_dispatch: workflow_dispatch:
permissions:
contents: read
jobs: jobs:
package-trigger-scheduler: package-trigger-scheduler:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2.3.3 - uses: actions/checkout@v4.1.1
with: with:
fetch-depth: '0' fetch-depth: '0'
- name: Package Trigger Scheduler - name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: | run: |
echo "**** Branches found: ****" printf "# Package trigger scheduler for docker-baseimage-arch\n\n" >> $GITHUB_STEP_SUMMARY
git for-each-ref --format='%(refname:short)' refs/remotes printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
echo "**** Pulling the yq docker image ****" for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
do do
br=$(echo "$br" | sed 's|origin/||g') if [[ "${br}" == "HEAD" ]]; then
echo "**** Evaluating branch ${br} ****" printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/jenkins-vars.yml \ continue
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch) fi
if [ "${br}" == "${ls_branch}" ]; then printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
echo "**** Branch ${br} appears to be live; checking workflow. ****" JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/jenkins-vars.yml)
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****" echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} " echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
curl -iX POST \ skipped_branches="${skipped_branches}${br} "
-H "Authorization: token ${{ secrets.CR_PAT }}" \ elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
-H "Accept: application/vnd.github.v3+json" \ echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
-d "{\"ref\":\"refs/heads/${br}\"}" \ README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-arch/${br}/readme-vars.yml)
https://api.github.com/repos/linuxserver/docker-baseimage-arch/actions/workflows/package_trigger.yml/dispatches if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
sleep 30 echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif grep -q "^baseimage-arch_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`baseimage-arch_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-arch/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
else else
echo "**** Workflow doesn't exist; skipping trigger. ****" echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
printf "> To disable, add \`baseimage-arch_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
triggered_branches="${triggered_branches}${br} "
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-arch/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
if [[ -z "${response}" ]]; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Jenkins build could not be triggered. Skipping branch."
continue
fi
echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
sleep 10
buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
buildurl="${buildurl%$'\r'}"
echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
if ! curl -ifX POST \
"${buildurl}submitDescription" \
--user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
--data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
--data-urlencode "Submit=Submit"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Unable to change the Jenkins job description."
fi
sleep 20
fi fi
else else
echo "**** ${br} appears to be a dev branch; skipping trigger. ****" echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
fi fi
done done
if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
if [[ -n "${triggered_branches}" ]]; then
NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-baseimage-arch/activity/ \n"
echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****" echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
fi
if [[ -n "${skipped_branches}" ]]; then
NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
fi
echo "**** Notifying Discord ****" echo "**** Notifying Discord ****"
curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903, curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
"description": "**Package Check Build(s) Triggered for baseimage-arch** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-baseimage-arch/activity/"' \n"}], "description": "**Package Check Build(s) for baseimage-arch** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }} "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
fi

12
.github/workflows/permissions.yml vendored Executable file
View File

@ -0,0 +1,12 @@
name: Permission check
on:
pull_request_target:
paths:
- '**/run'
- '**/finish'
- '**/check'
- 'root/migrations/*'
jobs:
permission_check:
uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1

View File

@ -1,23 +0,0 @@
name: Mark stale issues and pull requests
on:
schedule:
- cron: "30 1 * * *"
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
with:
stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
days-before-stale: 30
days-before-close: 365
exempt-issue-labels: 'awaiting-approval,work-in-progress'
exempt-pr-labels: 'awaiting-approval,work-in-progress'
repo-token: ${{ secrets.GITHUB_TOKEN }}

View File

@ -1,38 +1,7 @@
FROM alpine:3.14 as rootfs-stage # syntax=docker/dockerfile:1
ARG ARCH_VERSION
# install packages
RUN \
apk add --no-cache \
bash \
curl \
jq \
tzdata \
xz
# grab latest rootfs
RUN \
echo "**** grab download URL ****" && \
if [ -z ${ARCH_VERSION+x} ]; then \
ARCH_VERSION=$(curl -sL https://gitlab.archlinux.org/api/v4/projects/10185/releases \
| jq -r '.[0].tag_name' | sed 's/^v//g'); \
fi && \
PACK_ID=$(curl -sL https://gitlab.archlinux.org/api/v4/projects/10185/packages?sort=desc | jq -r '.[] | select(.version == "'${ARCH_VERSION}'") | .id') && \
TAR_ID=$(curl -sL https://gitlab.archlinux.org/api/v4/projects/10185/packages/${PACK_ID}/package_files | jq '.[] | select(.file_name == "base-'${ARCH_VERSION}'.tar.xz") | .id') && \
echo "**** download/extract rootfs ****" && \
curl -o \
/rootfs.tar.xz -L \
https://gitlab.archlinux.org/archlinux/archlinux-docker/-/package_files/${TAR_ID}/download && \
mkdir /root-out && \
tar xf \
/rootfs.tar.xz -C \
/root-out
# pacstrap stage # pacstrap stage
FROM scratch as pacstrap-stage FROM archlinux:base AS pacstrap-stage
COPY --from=rootfs-stage /root-out/ /
COPY patch/ /tmp/patch
RUN \ RUN \
mkdir -m 0755 -p \ mkdir -m 0755 -p \
@ -43,13 +12,19 @@ RUN \
mkdir -m 0555 -p \ mkdir -m 0555 -p \
/root-out/{sys,proc} && \ /root-out/{sys,proc} && \
pacman -r /root-out -Sy --noconfirm \ pacman -r /root-out -Sy --noconfirm \
archlinux-keyring \
bash \ bash \
busybox \
catatonit \
coreutils \ coreutils \
curl \
findutils \ findutils \
gawk \ gawk \
grep \ grep \
gzip \ gzip \
jq \
less \ less \
netcat \
pacman \ pacman \
procps-ng \ procps-ng \
sed \ sed \
@ -60,56 +35,71 @@ RUN \
which && \ which && \
cp -a /etc/pacman.conf /root-out/etc/pacman.conf && \ cp -a /etc/pacman.conf /root-out/etc/pacman.conf && \
cp -a /etc/pacman.d/mirrorlist /root-out/etc/pacman.d/mirrorlist && \ cp -a /etc/pacman.d/mirrorlist /root-out/etc/pacman.d/mirrorlist && \
cp -a /tmp/patch/init-stage2.patch /root-out/ && \
rm /root-out/var/lib/pacman/sync/* rm /root-out/var/lib/pacman/sync/*
# set version for s6 overlay
ARG S6_OVERLAY_VERSION="3.2.1.0"
ARG S6_OVERLAY_ARCH="x86_64"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz
# add s6 optional symlinks
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && unlink /root-out/usr/bin/with-contenv
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz
# runtime stage # runtime stage
FROM scratch FROM scratch
COPY --from=pacstrap-stage /root-out/ / COPY --from=pacstrap-stage /root-out/ /
ARG BUILD_DATE ARG BUILD_DATE
ARG VERSION ARG VERSION
ARG MODS_VERSION="v3"
ARG PKG_INST_VERSION="v1"
ARG LSIOWN_VERSION="v1"
ARG WITHCONTENV_VERSION="v1"
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="TheLamer" LABEL maintainer="TheLamer"
# set version for s6 overlay ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods"
ARG OVERLAY_VERSION="v2.2.0.3" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run"
ARG OVERLAY_ARCH="amd64" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/lsiown.${LSIOWN_VERSION}" "/usr/bin/lsiown"
ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/with-contenv.${WITHCONTENV_VERSION}" "/usr/bin/with-contenv"
# environment variables # environment variables
ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
HOME="/root" \ HOME="/root" \
TERM="xterm" TERM="xterm" \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \
S6_VERBOSITY=1 \
S6_STAGE2_HOOK=/docker-mods \
VIRTUAL_ENV=/lsiopy \
PATH="/lsiopy/bin:$PATH"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/
RUN \ RUN \
echo "**** create abc user and make our folders ****" && \ echo "**** create abc user and make our folders ****" && \
groupadd -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \ useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc && \ usermod -G users abc && \
mkdir -p \ mkdir -p \
/app \ /app \
/config \ /config \
/defaults && \ /defaults \
echo "**** install s6 ****" && \ /lsiopy && \
chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && \
/tmp/s6-overlay-${OVERLAY_ARCH}-installer / && \
rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer && \
mv /usr/bin/with-contenv /usr/bin/with-contenvb && \
echo "**** configure pacman ****" && \ echo "**** configure pacman ****" && \
locale-gen && \ locale-gen && \
pacman-key --init && \ pacman-key --init && \
pacman-key --populate archlinux && \ pacman-key --populate archlinux && \
echo "**** patch files ****" && \ echo "**** configure locale ****" && \
pacman -Sy --noconfirm \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
patch && \ locale-gen && \
patch -u /etc/s6/init/init-stage2 -i /init-stage2.patch && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
pacman -Rsn --noconfirm \
patch && \
rm -rf \ rm -rf \
/init-stage2.patch \
/tmp/* \ /tmp/* \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/* /var/lib/pacman/sync/*
# add local files # add local files

View File

@ -1,4 +1,6 @@
FROM alpine:3.14 as rootfs-stage # syntax=docker/dockerfile:1
FROM alpine:3 AS rootfs-stage
# install packages # install packages
RUN \ RUN \
@ -21,9 +23,8 @@ RUN \
/root-out /root-out
# pacstrap stage # pacstrap stage
FROM scratch as pacstrap-stage FROM scratch AS pacstrap-stage
COPY --from=rootfs-stage /root-out/ / COPY --from=rootfs-stage /root-out/ /
COPY patch/ /tmp/patch
RUN \ RUN \
mkdir -m 0755 -p \ mkdir -m 0755 -p \
@ -33,16 +34,23 @@ RUN \
/root-out/tmp && \ /root-out/tmp && \
mkdir -m 0555 -p \ mkdir -m 0555 -p \
/root-out/{sys,proc} && \ /root-out/{sys,proc} && \
sed -i 's/DownloadUser = alpm//g' /etc/pacman.conf && \
pacman-key --init && \ pacman-key --init && \
pacman-key --populate archlinuxarm && \ pacman-key --populate archlinuxarm && \
pacman -r /root-out -Sy --noconfirm \ pacman -r /root-out -Sy --noconfirm \
archlinuxarm-keyring \
bash \ bash \
busybox \
catatonit \
coreutils \ coreutils \
curl \
findutils \ findutils \
gawk \ gawk \
grep \ grep \
gzip \ gzip \
jq \
less \ less \
netcat \
pacman \ pacman \
procps-ng \ procps-ng \
sed \ sed \
@ -53,56 +61,74 @@ RUN \
which && \ which && \
cp -a /etc/pacman.conf /root-out/etc/pacman.conf && \ cp -a /etc/pacman.conf /root-out/etc/pacman.conf && \
cp -a /etc/pacman.d/mirrorlist /root-out/etc/pacman.d/mirrorlist && \ cp -a /etc/pacman.d/mirrorlist /root-out/etc/pacman.d/mirrorlist && \
cp -a /tmp/patch/init-stage2.patch /root-out/ && \ cp -a /etc/pacman.d/gnupg /root-out/etc/pacman.d/gnupg && \
rm /root-out/var/lib/pacman/sync/* rm /root-out/var/lib/pacman/sync/*
# set version for s6 overlay
ARG S6_OVERLAY_VERSION="3.2.1.0"
ARG S6_OVERLAY_ARCH="aarch64"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-noarch.tar.xz
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-${S6_OVERLAY_ARCH}.tar.xz
# add s6 optional symlinks
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz && unlink /root-out/usr/bin/with-contenv
ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch.tar.xz /tmp
RUN tar -C /root-out -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz
# runtime stage # runtime stage
FROM scratch FROM scratch
COPY --from=pacstrap-stage /root-out/ / COPY --from=pacstrap-stage /root-out/ /
ARG BUILD_DATE ARG BUILD_DATE
ARG VERSION ARG VERSION
ARG MODS_VERSION="v3"
ARG PKG_INST_VERSION="v1"
ARG LSIOWN_VERSION="v1"
ARG WITHCONTENV_VERSION="v1"
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}" LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="TheLamer" LABEL maintainer="TheLamer"
# set version for s6 overlay ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods"
ARG OVERLAY_VERSION="v2.2.0.3" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/package-install.${PKG_INST_VERSION}" "/etc/s6-overlay/s6-rc.d/init-mods-package-install/run"
ARG OVERLAY_ARCH="aarch64" ADD --chmod=744 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/lsiown.${LSIOWN_VERSION}" "/usr/bin/lsiown"
ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/with-contenv.${WITHCONTENV_VERSION}" "/usr/bin/with-contenv"
# environment variables # environment variables
ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \ ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
HOME="/root" \ HOME="/root" \
TERM="xterm" TERM="xterm" \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \
S6_VERBOSITY=1 \
S6_STAGE2_HOOK=/docker-mods \
VIRTUAL_ENV=/lsiopy \
PATH="/lsiopy/bin:$PATH"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/
RUN \ RUN \
echo "**** create abc user and make our folders ****" && \ echo "**** create abc user and make our folders ****" && \
groupadd -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \ useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc && \ usermod -G users abc && \
mkdir -p \ mkdir -p \
/app \ /app \
/config \ /config \
/defaults && \ /defaults \
echo "**** install s6 ****" && \ /lsiopy && \
chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && \
/tmp/s6-overlay-${OVERLAY_ARCH}-installer / && \
rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer && \
mv /usr/bin/with-contenv /usr/bin/with-contenvb && \
echo "**** configure pacman ****" && \ echo "**** configure pacman ****" && \
locale-gen && \ locale-gen && \
pacman-key --init && \ echo "**** configure locale ****" && \
pacman-key --populate archlinuxarm && \ echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
echo "**** patch files ****" && \ locale-gen && \
pacman -Sy --noconfirm \
patch && \
patch -u /etc/s6/init/init-stage2 -i /init-stage2.patch && \
echo "**** cleanup ****" && \ echo "**** cleanup ****" && \
pacman -Rsn --noconfirm \ chmod 755 \
patch && \ /etc \
/usr \
/usr/bin && \
rm -rf \ rm -rf \
/init-stage2.patch \
/tmp/* \ /tmp/* \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/* /var/lib/pacman/sync/*
# add local files # add local files

View File

@ -1,111 +0,0 @@
FROM alpine:3.14 as rootfs-stage
# install packages
RUN \
apk add --no-cache \
bash \
curl \
jq \
tzdata \
xz
# grab latest rootfs
RUN \
echo "**** download/extract rootfs ****" && \
curl -o \
/rootfs.tar.xz -L \
http://os.archlinuxarm.org/os/ArchLinuxARM-armv7-latest.tar.gz && \
mkdir /root-out && \
tar xf \
/rootfs.tar.xz -C \
/root-out
# pacstrap stage
FROM scratch as pacstrap-stage
COPY --from=rootfs-stage /root-out/ /
COPY patch/ /tmp/patch
RUN \
mkdir -m 0755 -p \
/root-out/var/{cache/pacman/pkg,lib/pacman,log} \
/root-out/{dev,run,etc} && \
mkdir -m 1777 -p \
/root-out/tmp && \
mkdir -m 0555 -p \
/root-out/{sys,proc} && \
pacman-key --init && \
pacman-key --populate archlinuxarm && \
pacman -r /root-out -Sy --noconfirm \
bash \
coreutils \
findutils \
gawk \
grep \
gzip \
less \
pacman \
procps-ng \
sed \
shadow \
tar \
tzdata \
util-linux \
which && \
cp -a /etc/pacman.conf /root-out/etc/pacman.conf && \
cp -a /etc/pacman.d/mirrorlist /root-out/etc/pacman.d/mirrorlist && \
cp -a /tmp/patch/init-stage2.patch /root-out/ && \
rm /root-out/var/lib/pacman/sync/*
# runtime stage
FROM scratch
COPY --from=pacstrap-stage /root-out/ /
ARG BUILD_DATE
ARG VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="TheLamer"
# set version for s6 overlay
ARG OVERLAY_VERSION="v2.2.0.3"
ARG OVERLAY_ARCH="arm"
# environment variables
ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
HOME="/root" \
TERM="xterm"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/
RUN \
echo "**** create abc user and make our folders ****" && \
groupadd -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc && \
mkdir -p \
/app \
/config \
/defaults && \
echo "**** install s6 ****" && \
chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && \
/tmp/s6-overlay-${OVERLAY_ARCH}-installer / && \
rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer && \
mv /usr/bin/with-contenv /usr/bin/with-contenvb && \
echo "**** configure pacman ****" && \
locale-gen && \
pacman-key --init && \
pacman-key --populate archlinuxarm && \
echo "**** patch files ****" && \
pacman -Sy --noconfirm \
patch && \
patch -u /etc/s6/init/init-stage2 -i /init-stage2.patch && \
echo "**** cleanup ****" && \
pacman -Rsn --noconfirm \
patch && \
rm -rf \
/init-stage2.patch \
/tmp/* \
/var/lib/pacman/sync/*
# add local files
COPY root/ /
ENTRYPOINT ["/init"]

864
Jenkinsfile vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,29 +1,20 @@
<!-- DO NOT EDIT THIS FILE MANUALLY --> <!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-baseimage-arch/blob/master/.github/CONTRIBUTING.md --> <!-- Please read https://github.com/linuxserver/docker-baseimage-arch/blob/master/.github/CONTRIBUTING.md -->
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[linuxserverurl]: https://linuxserver.io
[forumurl]: https://forum.linuxserver.io
[ircurl]: https://www.linuxserver.io/irc/
[appurl]: https://archlinux.org/
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png?v=4&s=4000)][linuxserverurl]
## Contact information:- ## Contact information:-
| Type | Address/Details | | Type | Address/Details |
| :---: | --- | | :---: | --- |
| Discord | [Discord](https://discord.gg/YWrKVTn) | | Discord | [Discord](https://linuxserver.io/discord) |
| IRC | freenode at `#linuxserver.io` more information at:- [IRC][ircurl] | IRC | `#linuxserver.io` on irc.libera.chat |
| Forum | [LinuxServer.io forum][forumurl] | | Forum | [Discourse](https://discourse.linuxserver.io/) |
&nbsp; A custom base image built with [Arch Linux](https://archlinux.org) and [s6-overlay](https://github.com/just-containers/s6-overlay).
&nbsp;
[![](https://images.microbadger.com/badges/image/lsiobase/arch.svg)](https://microbadger.com/images/lsiobase/arch "Get your own image badge on microbadger.com") - Support for using our base images in your own projects is provided on a Reasonable Endeavours basis, please see our [Support Policy](https://www.linuxserver.io/supportpolicy) for details.
- There is no `latest` tag for any of our base images, by design. We often make breaking changes between versions, and we don't publish release notes like we do for the downstream images.
[![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Link-green.png)](https://github.com/linuxserver/docker-baseimage-arch/blob/master/Dockerfile) - If you're intending to distribute an image using one of our bases, please read our [docs on container branding](https://docs.linuxserver.io/general/container-branding/) first.
A custom base image built with [Alpine linux][appurl] and [S6 overlay](https://github.com/just-containers/s6-overlay)..
The following line is only in this repo for loop testing: The following line is only in this repo for loop testing:

View File

@ -2,10 +2,13 @@
# jenkins variables # jenkins variables
project_name: docker-baseimage-arch project_name: docker-baseimage-arch
external_type: os external_type: na
custom_version_command: "echo $(date +%F)"
release_type: stable release_type: stable
release_tag: latest release_tag: latest
ls_branch: master ls_branch: master
image_sbom: true
image_provenance: true
repo_vars: repo_vars:
- BUILD_VERSION_ARG = 'OS' - BUILD_VERSION_ARG = 'OS'
- LS_USER = 'linuxserver' - LS_USER = 'linuxserver'
@ -21,6 +24,6 @@ repo_vars:
- CI_PORT='80' - CI_PORT='80'
- CI_SSL='true' - CI_SSL='true'
- CI_DELAY='30' - CI_DELAY='30'
- CI_DOCKERENV='TZ=US/Pacific' - CI_DOCKERENV='LSIO_FIRST_PARTY=true'
- CI_AUTH='user:password' - CI_AUTH=''
- CI_WEBPATH='' - CI_WEBPATH=''

View File

@ -1,80 +1,134 @@
acl 2.3.1-1 NAME VERSION TYPE
archlinux-keyring 20210802-1 acl 2.3.2-1 alpm
attr 2.5.1-1 archlinux-keyring 20260301-1 alpm
audit 3.0.3-1 attr 2.5.2-1 alpm
bash 5.1.008-1 audit 4.1.3-1 alpm
bzip2 1.0.8-4 bash 5.3.9-1 alpm
ca-certificates 20210603-1 binutils 2.46-1 alpm
ca-certificates-mozilla 3.68-1 brotli 1.2.0-1 alpm
ca-certificates-utils 20210603-1 busybox 1.36.1-2 alpm
coreutils 8.32-1 bzip2 1.0.8-6 alpm
curl 7.78.0-1 ca-certificates 20240618-1 alpm
e2fsprogs 1.46.3-1 ca-certificates-mozilla 3.121-1 alpm
expat 2.4.1-1 ca-certificates-utils 20240618-1 alpm
file 5.40-5 catatonit 0.2.1-2 alpm
filesystem 2021.05.31-1 command-line-arguments UNKNOWN go-module
findutils 4.8.0-1 coreutils 9.10-1 alpm
gawk 5.1.0-1 cryptsetup 2.8.4-1 alpm
gcc-libs 11.1.0-1 curl 8.18.0-3 alpm
glib2 2.68.3-1 dbus 1.16.2-1 alpm
glibc 2.33-5 dbus-broker 37-3 alpm
gmp 6.2.1-1 dbus-broker-units 37-3 alpm
gnupg 2.2.29-1 dbus-units 37-3 alpm
gnutls 3.7.2-2 device-mapper 2.03.38-1 alpm
gpgme 1.16.0-1 e2fsprogs 1.47.3-2 alpm
grep 3.6-1 expat 2.7.4-1 alpm
gzip 1.10-3 file 5.47-1 alpm
iana-etc 20210624-1 filesystem 2025.10.12-1 alpm
keyutils 1.6.3-1 findutils 4.10.0-3 alpm
krb5 1.19.1-1 gawk 5.4.0-1 alpm
less 1:590-1 gcc-libs 15.2.1+r604+g0b99615a8aef-1 alpm
libarchive 3.5.1-1 gdbm 1.26-2 alpm
libassuan 2.5.5-1 gettext 1.0-2 alpm
libcap 2.51-1 glib2 2.86.4-1 alpm
libcap-ng 0.8.2-3 glibc 2.43+r5+g856c426a7534-1 alpm
libffi 3.3-4 gmp 6.3.0-3 alpm
libgcrypt 1.9.3-1 gnulib-l10n 20241231-1 alpm
libgpg-error 1.42-1 gnupg 2.4.9-1 alpm
libidn2 2.3.2-1 gnutls 3.8.12-2 alpm
libksba 1.6.0-1 gpgme 2.0.1-3 alpm
libldap 2.4.59-2 grep 3.12-2 alpm
libnghttp2 1.44.0-1 gzip 1.14-2 alpm
libp11-kit 0.24.0-1 hwdata 0.405-1 alpm
libpsl 0.21.1-1 iana-etc 20260225-2 alpm
libsasl 2.1.27-3 icu 78.2-2 alpm
libseccomp 2.5.1-2 jansson 2.15.0-1 alpm
libsecret 0.20.4-1 jq 1.8.1-1 alpm
libssh2 1.9.0-3 json-c 0.18-2 alpm
libtasn1 4.17.0-1 kbd 2.9.0-1 alpm
libtirpc 1.3.2-1 kernel.org/pub/linux/libs/security/libcap/cap v1.2.77 go-module
libunistring 0.9.10-3 kernel.org/pub/linux/libs/security/libcap/psx v1.2.77 go-module
libxcrypt 4.4.23-1 keyutils 1.6.3-3 alpm
linux-api-headers 5.12.3-1 kmod 34.2-1 alpm
lz4 1:1.9.3-2 krb5 1.21.3-2 alpm
mpfr 4.1.0-2 leancrypto 1.6.0-1 alpm
ncurses 6.2-2 less 1:692-1 alpm
nettle 3.7.3-1 libarchive 3.8.5-1 alpm
npth 1.6-3 libasan 15.2.1+r604+g0b99615a8aef-1 alpm
openssl 1.1.1.k-1 libassuan 3.0.0-1 alpm
p11-kit 0.24.0-1 libatomic 15.2.1+r604+g0b99615a8aef-1 alpm
pacman 6.0.0-5 libbsd 0.12.2-2 alpm
pacman-mirrorlist 20210718-1 libcap 2.77-1 alpm
pam 1.5.1-1 libcap-ng 0.9-1 alpm
pambase 20210605-2 libelf 0.194-2 alpm
pcre 8.45-1 libevent 2.1.12-5 alpm
pcre2 10.37-1 libffi 3.5.2-1 alpm
pinentry 1.1.1-1 libgcc 15.2.1+r604+g0b99615a8aef-1 alpm
procps-ng 3.3.17-1 libgcrypt 1.12.1-1 alpm
readline 8.1.001-1 libgfortran 15.2.1+r604+g0b99615a8aef-1 alpm
sed 4.8-1 libgomp 15.2.1+r604+g0b99615a8aef-1 alpm
shadow 4.8.1-4 libgpg-error 1.59-1 alpm
sqlite 3.36.0-1 libidn2 2.3.8-1 alpm
systemd-libs 249.2-1 libksba 1.6.8-1 alpm
tar 1.34-1 libldap 2.6.12-1 alpm
tzdata 2021a-1 liblsan 15.2.1+r604+g0b99615a8aef-1 alpm
util-linux 2.37.1-1 libmakepkg-dropins 20-1 alpm
util-linux-libs 2.37.1-1 libmd 1.1.0-2 alpm
which 2.21-5 libnghttp2 1.68.0-1 alpm
xz 5.2.5-1 libnghttp3 1.15.0-1 alpm
zlib 1:1.2.11-4 libngtcp2 1.21.0-1 alpm
zstd 1.5.0-1 libnsl 2.0.1-1 alpm
libobjc 15.2.1+r604+g0b99615a8aef-1 alpm
libp11-kit 0.26.2-1 alpm
libpsl 0.21.5-2 alpm
libquadmath 15.2.1+r604+g0b99615a8aef-1 alpm
libsasl 2.1.28-5 alpm
libseccomp 2.6.0-1 alpm
libsecret 0.21.7-1 alpm
libssh2 1.11.1-1 alpm
libstdc++ 15.2.1+r604+g0b99615a8aef-1 alpm
libsysprof-capture 49.0-2 alpm
libtasn1 4.21.0-1 alpm
libtirpc 1.3.7-1 alpm
libtsan 15.2.1+r604+g0b99615a8aef-1 alpm
libubsan 15.2.1+r604+g0b99615a8aef-1 alpm
libunistring 1.4.1-1 alpm
libusb 1.0.29-1 alpm
libverto 0.3.2-5 alpm
libxcrypt 4.5.2-1 alpm
libxml2 2.15.2-1 alpm
linux-api-headers 6.19-1 alpm
lmdb 0.9.34-1 alpm
lz4 1:1.10.0-2 alpm
mpfr 4.2.2-1 alpm
ncurses 6.6-1 alpm
nettle 3.10.2-1 alpm
npth 1.8-1 alpm
oniguruma 6.9.10-1 alpm
openbsd-netcat 1.234_1-1 alpm
openssl 3.6.1-1 alpm
p11-kit 0.26.2-1 alpm
pacman 7.1.0.r9.g54d9411-1 alpm
pacman-mirrorlist 20260213-1 alpm
pam 1.7.2-2 alpm
pambase 20250719-1 alpm
pcre2 10.47-1 alpm
pinentry 1.3.2-2 alpm
popt 1.19-2 alpm
procps-ng 4.0.6-1 alpm
readline 8.3.003-1 alpm
sed 4.9-3 alpm
shadow 4.18.0-1 alpm
sqlite 3.51.2-1 alpm
stdlib go1.25.3 go-module
systemd 259.3-1 alpm
systemd-libs 259.3-1 alpm
tar 1.35-2 alpm
tpm2-tss 4.1.3-1 alpm
tzdata 2026a-1 alpm
util-linux 2.41.3-2 alpm
util-linux-libs 2.41.3-2 alpm
which 2.23-1 alpm
xz 5.8.2-1 alpm
zlib 1:1.3.2-2 alpm
zstd 1.5.7-3 alpm

View File

@ -1,15 +0,0 @@
--- init-stage2 2021-01-20 20:21:41.628300700 -0600
+++ init-stage2_new 2021-01-20 20:23:48.123677700 -0600
@@ -17,6 +17,12 @@
backtick -D 0 -n S6_READ_ONLY_ROOT { printcontenv S6_READ_ONLY_ROOT }
importas -u S6_READ_ONLY_ROOT S6_READ_ONLY_ROOT
+# Docker Mods run logic
+foreground
+{
+ /docker-mods
+}
+
foreground
{
if

View File

@ -4,29 +4,21 @@
project_name: baseimage-arch project_name: baseimage-arch
full_custom_readme: | full_custom_readme: |
{% raw -%} {% raw -%}
[linuxserverurl]: https://linuxserver.io [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)](https://linuxserver.io)
[forumurl]: https://forum.linuxserver.io
[ircurl]: https://www.linuxserver.io/irc/
[appurl]: https://archlinux.org/
[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png?v=4&s=4000)][linuxserverurl]
## Contact information:- ## Contact information:-
| Type | Address/Details | | Type | Address/Details |
| :---: | --- | | :---: | --- |
| Discord | [Discord](https://discord.gg/YWrKVTn) | | Discord | [Discord](https://linuxserver.io/discord) |
| IRC | freenode at `#linuxserver.io` more information at:- [IRC][ircurl] | IRC | `#linuxserver.io` on irc.libera.chat |
| Forum | [LinuxServer.io forum][forumurl] | | Forum | [Discourse](https://discourse.linuxserver.io/) |
&nbsp; A custom base image built with [Arch Linux](https://archlinux.org) and [s6-overlay](https://github.com/just-containers/s6-overlay).
&nbsp;
[![](https://images.microbadger.com/badges/image/lsiobase/arch.svg)](https://microbadger.com/images/lsiobase/arch "Get your own image badge on microbadger.com") - Support for using our base images in your own projects is provided on a Reasonable Endeavours basis, please see our [Support Policy](https://www.linuxserver.io/supportpolicy) for details.
- There is no `latest` tag for any of our base images, by design. We often make breaking changes between versions, and we don't publish release notes like we do for the downstream images.
[![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Link-green.png)](https://github.com/linuxserver/docker-baseimage-arch/blob/master/Dockerfile) - If you're intending to distribute an image using one of our bases, please read our [docs on container branding](https://docs.linuxserver.io/general/container-branding/) first.
A custom base image built with [Alpine linux][appurl] and [S6 overlay](https://github.com/just-containers/s6-overlay)..
The following line is only in this repo for loop testing: The following line is only in this repo for loop testing:

View File

@ -1,124 +0,0 @@
#!/usr/bin/with-contenv bash
# Exit if mods is not set
if [ -z ${DOCKER_MODS+x} ]; then
exit 0
fi
# Check for curl
if [ ! -f /usr/bin/curl ] || [ ! -f /usr/bin/jq ]; then
echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing"
if [ -f /usr/bin/apt ]; then
## Ubuntu
apt-get update
apt-get install --no-install-recommends -y \
curl \
jq
elif [ -f /sbin/apk ]; then
# Alpine
apk add --no-cache \
curl \
jq
elif [ -f /usr/sbin/pacman ]; then
# Arch
pacman -Sy --noconfirm \
curl \
jq
fi
fi
## Functions
# Use different filtering depending on URL
get_blob_sha () {
if [[ $1 == "ghcr" ]]; then
curl \
--silent \
--location \
--request GET \
--header "Authorization: Bearer $2" \
$3 | jq -r '.layers[0].digest'
else
curl \
--silent \
--location \
--request GET \
--header "Authorization: Bearer $2" \
$3 | jq -r '.fsLayers[0].blobSum'
fi
}
# Main run logic
echo "[mod-init] Attempting to run Docker Modification Logic"
IFS='|'
DOCKER_MODS=(${DOCKER_MODS})
for DOCKER_MOD in "${DOCKER_MODS[@]}"; do
# Support alternative endpoints
if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then
DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}"
ENDPOINT="${DOCKER_MOD%%:*}"
USERNAME="${DOCKER_MOD%%/*}"
REPO="${ENDPOINT#*/}"
TAG="${DOCKER_MOD#*:}"
if [[ ${TAG} == "${DOCKER_MOD}" ]]; then
TAG="latest"
fi
FILENAME="${USERNAME}.${REPO}.${TAG}"
AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull"
MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}"
BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/"
MODE="ghcr"
else
ENDPOINT="${DOCKER_MOD%%:*}"
USERNAME="${DOCKER_MOD%%/*}"
REPO="${ENDPOINT#*/}"
TAG="${DOCKER_MOD#*:}"
if [[ ${TAG} == "${DOCKER_MOD}" ]]; then
TAG="latest"
fi
FILENAME="${USERNAME}.${REPO}.${TAG}"
AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull"
MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}"
BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/"
MODE="dockerhub"
fi
# Kill off modification logic if any of the usernames are banned
BLACKLIST=$(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt)
IFS=$'\n'
BLACKLIST=(${BLACKLIST})
for BANNED in "${BLACKLIST[@]}"; do
if [ "${BANNED}" == "${USERNAME,,}" ]; then
if [ -z ${RUN_BANNED_MODS+x} ]; then
echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic"
exit 0
else
echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied"
fi
fi
done
echo "[mod-init] Applying ${DOCKER_MOD} files to container"
# Get Dockerhub token for api operations
TOKEN=\
"$(curl \
--silent \
--header 'GET' \
"${AUTH_URL}" \
| jq -r '.token' \
)"
# Determine first and only layer of image
SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}")
# Check if we have allready applied this layer
if [ -f "/${FILENAME}" ] && [ "${SHALAYER}" == "$(cat /${FILENAME})" ]; then
echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping"
else
# Download and extract layer to /
curl \
--silent \
--location \
--request GET \
--header "Authorization: Bearer ${TOKEN}" \
"${BLOB_URL}${SHALAYER}" \
| tar xz -C /
echo ${SHALAYER} > "/${FILENAME}"
fi
done

View File

@ -1,16 +0,0 @@
#! /bin/bash
if [[ "$(ls /var/run/s6/container_environment/ | xargs)" == *"FILE__"* ]]; then
for FILENAME in /var/run/s6/container_environment/*; do
if [[ "${FILENAME##*/}" == "FILE__"* ]]; then
SECRETFILE=$(cat ${FILENAME})
if [[ -f ${SECRETFILE} ]]; then
FILESTRIP=${FILENAME//FILE__/}
cat ${SECRETFILE} > ${FILESTRIP}
echo "[env-init] ${FILESTRIP##*/} set from ${FILENAME##*/}"
else
echo "[env-init] cannot find secret in ${FILENAME##*/}"
fi
fi
done
fi

View File

@ -1,55 +0,0 @@
#!/usr/bin/with-contenv bash
PUID=${PUID:-911}
PGID=${PGID:-911}
groupmod -o -g "$PGID" abc
usermod -o -u "$PUID" abc
echo '
-------------------------------------
_ ()
| | ___ _ __
| | / __| | | / \
| | \__ \ | | | () |
|_| |___/ |_| \__/
Brought to you by linuxserver.io
-------------------------------------'
if [[ -f /donate.txt ]]; then
echo '
To support the app dev(s) visit:'
cat /donate.txt
fi
echo '
To support LSIO projects visit:
https://www.linuxserver.io/donate/
-------------------------------------
GID/UID
-------------------------------------'
echo "
User uid: $(id -u abc)
User gid: $(id -g abc)
-------------------------------------
"
time32="$(date +%Y)"
if [[ "${time32}" == "1970" || "${time32}" == "1969" ]] && [ "$(uname -m)" == "armv7l" ]; then
echo '
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Your DockerHost is most likely running an outdated version of libseccomp
To fix this, please visit https://docs.linuxserver.io/faq#libseccomp
Some apps might not behave correctly without this
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'
fi
chown abc:abc /app
chown abc:abc /config
chown abc:abc /defaults

View File

@ -1,5 +0,0 @@
#!/usr/bin/with-contenv bash
# create custom folders and secure permissions
mkdir -p /config/{custom-cont-init.d,custom-services.d}
chown -R 0:0 /config/{custom-cont-init.d,custom-services.d}

View File

@ -1,49 +0,0 @@
#!/usr/bin/with-contenv bash
# Directories
SCRIPTS_DIR="/config/custom-cont-init.d"
SERVICES_DIR="/config/custom-services.d"
# Remove all existing custom services before continuing to ensure
# we aren't running anything the user may have removed
if [ -n "$(/bin/ls -A /etc/services.d/custom-service-* 2>/dev/null)" ]; then
echo "[custom-init] removing existing custom services..."
rm -rf /etc/services.d/custom-service-*
fi
# Make sure custom init directory exists and has files in it
if ([ -e "${SCRIPTS_DIR}" ] && \
[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]) || \
([ -e "${SERVICES_DIR}" ] && \
[ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]); then
if [ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]; then
echo "[custom-init] files found in ${SCRIPTS_DIR} executing"
for SCRIPT in ${SCRIPTS_DIR}/*; do
NAME="$(basename "${SCRIPT}")"
if [ -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: executing..."
/bin/bash ${SCRIPT}
echo "[custom-init] ${NAME}: exited $?"
elif [ ! -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: is not a file"
fi
done
fi
if [ -n "$(/bin/ls -A ${SERVICES_DIR} 2>/dev/null)" ]; then
echo "[custom-init] service files found in ${SERVICES_DIR}"
for SERVICE in ${SERVICES_DIR}/*; do
NAME="$(basename "${SERVICE}")"
if [ -f "${SERVICE}" ]; then
echo "[custom-init] ${NAME}: service detected, copying..."
mkdir -p /etc/services.d/custom-service-${NAME}/
cp ${SERVICE} /etc/services.d/custom-service-${NAME}/run
chmod +x /etc/services.d/custom-service-${NAME}/run
echo "[custom-init] ${NAME}: copied"
elif [ ! -f "${SERVICE}" ]; then
echo "[custom-init] ${NAME}: is not a file"
fi
done
fi
else
echo "[custom-init] no custom files found exiting..."
fi

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
echo "[ls.io-init] done."

View File

@ -0,0 +1,12 @@
───────────────────────────────────────
_____ __ __ _____ _____ _____ _____
| | | | __|_ _| | |
| --| | |__ | | | | | | | | |
|_____|_____|_____| |_| |_____|_|_|_|
_____ __ __ _ __ ____
| __ | | | | | | \
| __ -| | | | |__| | |
|_____|_____|_|_____|____/
Based on images from linuxserver.io
───────────────────────────────────────

View File

@ -0,0 +1,44 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
PUID=${PUID:-911}
PGID=${PGID:-911}
if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then
USERHOME=$(grep abc /etc/passwd | cut -d ":" -f6)
usermod -d "/root" abc
groupmod -o -g "${PGID}" abc
usermod -o -u "${PUID}" abc
usermod -d "${USERHOME}" abc
fi
cat /etc/s6-overlay/s6-rc.d/init-adduser/branding
if [[ -f /donate.txt ]]; then
echo '
To support the app dev(s) visit:'
cat /donate.txt
fi
echo '
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────'
echo "
User UID: $(id -u abc)
User GID: $(id -g abc)
───────────────────────────────────────"
if [[ -f /build_version ]]; then
cat /build_version
echo '
───────────────────────────────────────
'
fi
lsiown abc:abc /app
lsiown abc:abc /config
lsiown abc:abc /defaults

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-adduser/run

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
# This file doesn't do anything, it's just the end of the downstream image init process

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
# This file doesn't do anything, it's just the start of the downstream image init process

View File

@ -0,0 +1,31 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
for cron_user in abc root; do
if [[ -f "/etc/crontabs/${cron_user}" ]]; then
lsiown "${cron_user}":"${cron_user}" "/etc/crontabs/${cron_user}"
crontab -u "${cron_user}" "/etc/crontabs/${cron_user}"
fi
if [[ -f "/defaults/crontabs/${cron_user}" ]]; then
# make folders
mkdir -p \
/config/crontabs
# if crontabs do not exist in config
if [[ ! -f "/config/crontabs/${cron_user}" ]]; then
# copy crontab from system
if crontab -l -u "${cron_user}" >/dev/null 2>&1; then
crontab -l -u "${cron_user}" >"/config/crontabs/${cron_user}"
fi
# if crontabs still do not exist in config (were not copied from system)
# copy crontab from image defaults (using -n, do not overwrite an existing file)
cp -n "/defaults/crontabs/${cron_user}" /config/crontabs/
fi
# set permissions and import user crontabs
lsiown "${cron_user}":"${cron_user}" "/config/crontabs/${cron_user}"
crontab -u "${cron_user}" "/config/crontabs/${cron_user}"
fi
done

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-crontab-config/run

View File

@ -0,0 +1,22 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# Directories
SCRIPTS_DIR="/custom-cont-init.d"
# Make sure custom init directory exists and has files in it
if [[ -e "${SCRIPTS_DIR}" ]] && [[ -n "$(/bin/ls -A ${SCRIPTS_DIR} 2>/dev/null)" ]]; then
echo "[custom-init] Files found, executing"
for SCRIPT in "${SCRIPTS_DIR}"/*; do
NAME="$(basename "${SCRIPT}")"
if [[ -x "${SCRIPT}" ]]; then
echo "[custom-init] ${NAME}: executing..."
/bin/bash "${SCRIPT}"
echo "[custom-init] ${NAME}: exited $?"
elif [[ ! -x "${SCRIPT}" ]]; then
echo "[custom-init] ${NAME}: is not an executable file"
fi
done
else
echo "[custom-init] No custom files found, skipping..."
fi

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-custom-files/run

View File

@ -0,0 +1,37 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ -z ${LSIO_NON_ROOT_USER} ]] && [[ -n ${ATTACHED_DEVICES_PERMS} ]]; then
FILES=$(find ${ATTACHED_DEVICES_PERMS} -print 2>/dev/null)
for i in ${FILES}; do
FILE_GID=$(stat -c '%g' "${i}")
FILE_UID=$(stat -c '%u' "${i}")
# check if user matches device
if id -u abc | grep -qw "${FILE_UID}"; then
echo "**** permissions for ${i} are good ****"
else
# check if group matches and that device has group rw
if id -G abc | grep -qw "${FILE_GID}" && [[ $(stat -c '%A' "${i}" | cut -b 5,6) == "rw" ]]; then
echo "**** permissions for ${i} are good ****"
# check if device needs to be added to group
elif ! id -G abc | grep -qw "${FILE_GID}"; then
# check if group needs to be created
GROUP_NAME=$(getent group "${FILE_GID}" | awk -F: '{print $1}')
if [[ -z "${GROUP_NAME}" ]]; then
GROUP_NAME="group$(head /dev/urandom | tr -dc 'a-z0-9' | head -c4)"
groupadd "${GROUP_NAME}"
groupmod -g "${FILE_GID}" "${GROUP_NAME}"
echo "**** creating group ${GROUP_NAME} with id ${FILE_GID} ****"
fi
echo "**** adding ${i} to group ${GROUP_NAME} with id ${FILE_GID} ****"
usermod -a -G "${GROUP_NAME}" abc
fi
# check if device has group rw
if [[ $(stat -c '%A' "${i}" | cut -b 5,6) != "rw" ]]; then
echo -e "**** The device ${i} does not have group read/write permissions, attempting to fix inside the container. ****"
chmod g+rw "${i}"
fi
fi
done
fi

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-device-perms/run

View File

@ -0,0 +1,19 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if find /run/s6/container_environment/FILE__* -maxdepth 1 > /dev/null 2>&1; then
for FILENAME in /run/s6/container_environment/FILE__*; do
SECRETFILE=$(cat "${FILENAME}")
if [[ -f ${SECRETFILE} ]]; then
FILESTRIP=${FILENAME//FILE__/}
if [[ $(tail -n1 "${SECRETFILE}" | wc -l) != 0 ]]; then
echo "[env-init] Your secret: ${FILENAME##*/}"
echo " contains a trailing newline and may not work as expected"
fi
cat "${SECRETFILE}" >"${FILESTRIP}"
echo "[env-init] ${FILESTRIP##*/} set from ${FILENAME##*/}"
else
echo "[env-init] cannot find secret in ${FILENAME##*/}"
fi
done
fi

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-envfile/run

View File

@ -0,0 +1,34 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
MIGRATIONS_DIR="/migrations"
MIGRATIONS_HISTORY="/config/.migrations"
echo "[migrations] started"
if [[ ! -d ${MIGRATIONS_DIR} ]]; then
echo "[migrations] no migrations found"
exit
fi
for MIGRATION in $(find ${MIGRATIONS_DIR}/* | sort -n); do
NAME="$(basename "${MIGRATION}")"
if [[ -f ${MIGRATIONS_HISTORY} ]] && grep -Fxq "${NAME}" ${MIGRATIONS_HISTORY}; then
echo "[migrations] ${NAME}: skipped"
continue
fi
echo "[migrations] ${NAME}: executing..."
chmod +x "${MIGRATION}"
EXIT_CODE=$(
/bin/bash "${MIGRATION}"
echo $?
)
if [[ ${EXIT_CODE} -ne 0 ]]; then
echo "[migrations] ${NAME}: failed with exit code ${EXIT_CODE}, contact support"
exit "${EXIT_CODE}"
fi
echo "${NAME}" >>${MIGRATIONS_HISTORY}
echo "[migrations] ${NAME}: succeeded"
done
echo "[migrations] done"

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-migrations/run

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
# This file doesn't do anything, it's just the end of the mod init process

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
/etc/s6-overlay/s6-rc.d/init-mods-package-install/run

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
# This file doesn't do anything, it's just the start of the mod init process

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
# This file doesn't do anything, it's just the end of the mod init process

View File

@ -0,0 +1 @@
oneshot

View File

@ -0,0 +1 @@
# This file doesn't do anything, it just signals that services can start

View File

@ -0,0 +1,15 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
if builtin command -v crontab >/dev/null 2>&1 && [[ -n "$(crontab -l -u abc 2>/dev/null || true)" || -n "$(crontab -l -u root 2>/dev/null || true)" ]]; then
if builtin command -v busybox >/dev/null 2>&1 && [[ $(busybox || true) =~ [[:space:]](crond)([,]|$) ]]; then
exec busybox crond -f -S -l 5
elif [[ -f /usr/bin/apt ]] && [[ -f /usr/sbin/cron ]]; then
exec /usr/sbin/cron -f -L 5
else
echo "**** cron not found ****"
sleep infinity
fi
else
sleep infinity
fi

View File

@ -0,0 +1 @@
longrun

View File

@ -1,7 +0,0 @@
#! /bin/bash
if [[ -f /var/run/s6/container_environment/UMASK ]] && [[ "$(pwdx $$)" =~ "/run/s6/services/" ]]; then
umask $(cat /var/run/s6/container_environment/UMASK)
exec /usr/bin/with-contenvb "$@"
else
exec /usr/bin/with-contenvb "$@"
fi