Compare commits

...

330 commits

Author SHA1 Message Date
LinuxServer-CI 1829203a1f
Bot Updating Package Versions 2025-04-05 13:33:01 +00:00
LinuxServer-CI 541d36efe3
Bot Updating Package Versions 2025-03-29 13:32:42 +00:00
LinuxServer-CI 7ce494bd90
Bot Updating Package Versions 2025-03-15 13:32:59 +00:00
LinuxServer-CI 9387323f0c
Bot Updating Package Versions 2025-03-08 13:27:31 +00:00
LinuxServer-CI 27bf833946
Bot Updating Package Versions 2025-03-01 13:31:25 +00:00
LinuxServer-CI e3cc011af9
Bot Updating Package Versions 2025-02-22 13:31:23 +00:00
LinuxServer-CI fb9656ba65
Bot Updating Package Versions 2025-02-15 13:30:39 +00:00
LinuxServer-CI 507c8e9b06
Bot Updating Templated Files 2025-02-15 13:28:34 +00:00
LinuxServer-CI 33b769f6a0
Bot Updating Package Versions 2025-02-08 13:29:54 +00:00
LinuxServer-CI aa7a9bedeb
Bot Updating Package Versions 2025-02-01 13:32:52 +00:00
LinuxServer-CI ea8ac65859
Bot Updating Templated Files 2025-02-01 13:30:44 +00:00
LinuxServer-CI c3b15ae1c4
Bot Updating Templated Files 2025-02-01 13:29:40 +00:00
LinuxServer-CI 2ec270928a
Bot Updating Package Versions 2025-01-25 13:30:37 +00:00
LinuxServer-CI 24c334abb9
Bot Updating Package Versions 2025-01-18 13:29:13 +00:00
LinuxServer-CI 0fb8917a4d
Bot Updating Package Versions 2025-01-11 13:31:03 +00:00
LinuxServer-CI cbfab27abe
Bot Updating Package Versions 2025-01-10 19:42:25 +00:00
LinuxServer-CI cd6e5c3261
Bot Updating Package Versions 2025-01-04 13:30:58 +00:00
LinuxServer-CI 6adc020f3a
Bot Updating Package Versions 2024-12-28 13:31:11 +00:00
LinuxServer-CI 05ad39baa4
Bot Updating Package Versions 2024-12-15 18:57:35 +00:00
LinuxServer-CI ceebcde095
Bot Updating Templated Files 2024-12-15 18:53:30 +00:00
LinuxServer-CI db0132f65e
Bot Updating Templated Files 2024-12-15 18:51:46 +00:00
LinuxServer-CI b6f784c880
Bot Updating Package Versions 2024-11-15 14:43:46 +00:00
LinuxServer-CI 09f1cf6c0f
Bot Updating Templated Files 2024-11-15 14:35:49 +00:00
LinuxServer-CI a0cfdcab1b
Bot Updating Templated Files 2024-11-15 14:34:05 +00:00
Adam 9a50ddc764
Merge pull request #249 from linuxserver/edge-tidy 2024-11-15 14:32:09 +00:00
thespad b3e506e337
Remove contenv symlink so we don't overwrite it 2024-11-15 12:15:47 +00:00
thespad cfdd9eb4b6
Add missing ARG 2024-11-15 11:56:16 +00:00
thespad a85f01ac96
Bump s6, add with-contenv from repo 2024-11-15 11:50:23 +00:00
thespad ff6532acc1
Tidy up init deps 2024-11-15 11:46:23 +00:00
LinuxServer-CI 4356a5ee09
Bot Updating Package Versions 2024-09-28 13:36:52 +00:00
LinuxServer-CI a6671df6c5
Bot Updating Templated Files 2024-09-28 13:35:02 +00:00
LinuxServer-CI 7db30b250a
Bot Updating Templated Files 2024-09-28 13:33:01 +00:00
LinuxServer-CI 6b41cb405c
Bot Updating Templated Files 2024-09-28 13:31:25 +00:00
LinuxServer-CI a9ef40cb24
Bot Updating Package Versions 2024-09-21 13:31:30 +00:00
LinuxServer-CI dc98a43528
Bot Updating Package Versions 2024-09-14 13:30:16 +00:00
LinuxServer-CI cb8e50088d
Bot Updating Package Versions 2024-09-07 13:30:31 +00:00
LinuxServer-CI 0669e5679e
Bot Updating Package Versions 2024-08-31 13:30:36 +00:00
LinuxServer-CI b93cd38cd6
Bot Updating Templated Files 2024-08-24 13:29:15 +00:00
LinuxServer-CI 1fb8224d5b Bot Updating Templated Files 2024-08-24 13:27:57 +00:00
LinuxServer-CI 3f14c9b61b Bot Updating Package Versions 2024-08-17 13:27:25 +00:00
LinuxServer-CI 9ed1cafff3 Bot Updating Package Versions 2024-08-09 12:13:24 +00:00
LinuxServer-CI 824755e63c Bot Updating Package Versions 2024-08-03 13:27:32 +00:00
LinuxServer-CI 47dc01f9f4 Bot Updating Package Versions 2024-07-27 13:28:04 +00:00
LinuxServer-CI e2a31facf7 Bot Updating Package Versions 2024-07-20 13:28:05 +00:00
LinuxServer-CI 96b1f0fb55 Bot Updating Package Versions 2024-07-13 13:32:01 +00:00
LinuxServer-CI 8cfae565b9 Bot Updating Templated Files 2024-07-13 13:29:28 +00:00
LinuxServer-CI 805d7876ee Bot Updating Templated Files 2024-07-13 13:27:02 +00:00
LinuxServer-CI d18c6d2a3f Bot Updating Package Versions 2024-07-06 13:26:46 +00:00
Adam 3e65c3745e
Merge pull request #246 from linuxserver/edge-ro-concept
RO support hooks (edge)
2024-07-02 13:58:53 +01:00
LinuxServer-CI d38466b1e6 Bot Updating Package Versions 2024-06-29 13:28:49 +00:00
thespad 0768ec9bfa
Linting 2024-06-26 23:09:48 +01:00
LinuxServer-CI 9d8f717967 Bot Updating Package Versions 2024-06-22 13:29:15 +00:00
thespad 799cbde906
Fix chmod 2024-06-20 13:51:22 +01:00
thespad 3567e2c461
Use default branding file for 3rd party images 2024-06-14 14:23:52 +01:00
thespad 78ab9cc511
Don't touch built-in crontabs in RO mode 2024-06-14 14:02:03 +01:00
thespad b68b2644fe
POC RO support hooks 2024-06-14 13:35:25 +01:00
LinuxServer-CI 3182240c76 Bot Updating Package Versions 2024-06-11 08:37:44 +00:00
Adam 8e709f2d69
Merge pull request #241 from linuxserver/edge-lsiown
Copy lsiown from repo (edge)
2024-06-11 09:35:24 +01:00
thespad 311e0224f6
Copy lsiown from repo 2024-06-10 15:19:50 +01:00
LinuxServer-CI d847543ceb Bot Updating Package Versions 2024-06-08 13:27:55 +00:00
LinuxServer-CI de2ddcefdb Bot Updating Package Versions 2024-05-25 13:28:28 +00:00
LinuxServer-CI 9651519192 Bot Updating Package Versions 2024-05-23 16:27:17 +00:00
Adam 2062c7fc65
Merge pull request #239 from linuxserver/edge-init-version
Output image version on init if present (Edge)
2024-05-23 17:24:39 +01:00
thespad 1798dbfd96
Run builder 2024-05-23 17:00:05 +01:00
thespad e3f8dccb3c
Output image version on init if present 2024-05-23 16:44:32 +01:00
LinuxServer-CI 8977d49890 Bot Updating Package Versions 2024-05-18 13:28:22 +00:00
Roxedus 5e74adc182
Merge pull request #236 from linuxserver/edge-remove-arm-warning 2024-05-14 14:24:53 +02:00
thespad 34a9074952
Remove armhf warning 2024-05-12 15:05:00 +01:00
LinuxServer-CI d5f2b917fc Bot Updating Package Versions 2024-05-08 18:52:40 +00:00
Roxedus 3d9df72583
Merge pull request #231 from linuxserver/edge-catatonit 2024-05-08 20:50:21 +02:00
Roxedus 2a89b700af
Add Catatonit 2024-05-06 20:25:26 +02:00
LinuxServer-CI bbf941f687 Bot Updating Templated Files 2024-05-04 13:26:18 +00:00
LinuxServer-CI e455fd89e8 Bot Updating Package Versions 2024-04-27 13:26:52 +00:00
LinuxServer-CI 775aa80c0d Bot Updating Package Versions 2024-04-20 13:26:41 +00:00
LinuxServer-CI 137fd12a5b Bot Updating Package Versions 2024-04-17 13:47:42 +00:00
aptalca 2ab23226a7
Merge pull request #229 from linuxserver/edge-find
edge: add gnu find
2024-04-17 09:45:36 -04:00
aptalca b7573ca5c7
add gnu find 2024-04-13 16:07:18 -04:00
LinuxServer-CI 9d83a916f4 Bot Updating Package Versions 2024-04-13 13:25:27 +00:00
LinuxServer-CI cdbc38a5eb Bot Updating Package Versions 2024-04-06 13:27:27 +00:00
LinuxServer-CI 5948f93696 Bot Updating Package Versions 2024-03-29 19:10:00 +00:00
LinuxServer-CI 38dbcef357 Bot Updating Package Versions 2024-03-23 13:27:37 +00:00
LinuxServer-CI 39c93b3bda Bot Updating Package Versions 2024-03-16 13:27:44 +00:00
LinuxServer-CI 3a12cacaff Bot Updating Templated Files 2024-03-16 13:25:36 +00:00
LinuxServer-CI 154ff18af7 Bot Updating Package Versions 2024-03-09 13:25:51 +00:00
LinuxServer-CI e75cbb3828 Bot Updating Package Versions 2024-03-02 13:24:29 +00:00
LinuxServer-CI 2ff5a254cb Bot Updating Templated Files 2024-02-24 13:28:42 +00:00
LinuxServer-CI c8ce0365e5 Bot Updating Templated Files 2024-02-24 13:27:04 +00:00
LinuxServer-CI d03098fb5d Bot Updating Package Versions 2024-02-17 13:26:12 +00:00
LinuxServer-CI 5e41951af0 Bot Updating Package Versions 2024-02-10 13:27:56 +00:00
LinuxServer-CI 1d44dad239 Bot Updating Package Versions 2024-02-03 13:26:59 +00:00
LinuxServer-CI daede87fd9 Bot Updating Package Versions 2024-01-27 13:24:53 +00:00
LinuxServer-CI d2b7e26d76 Bot Updating Package Versions 2024-01-20 13:27:07 +00:00
LinuxServer-CI 5c8af205a8 Bot Updating Package Versions 2024-01-13 13:30:45 +00:00
LinuxServer-CI d7cd64d770 Bot Updating Templated Files 2024-01-13 13:27:42 +00:00
LinuxServer-CI 6dcb5381cf Bot Updating Package Versions 2024-01-06 13:27:19 +00:00
LinuxServer-CI e0921b68c0 Bot Updating Package Versions 2023-12-30 13:28:38 +00:00
LinuxServer-CI dc19287b5c Bot Updating Package Versions 2023-12-23 13:27:58 +00:00
LinuxServer-CI 5e4a4dec73 Bot Updating Package Versions 2023-12-16 13:26:48 +00:00
LinuxServer-CI 2511d57a4c Bot Updating Package Versions 2023-12-12 20:31:02 +00:00
Adam d197005412
Merge pull request #221 from linuxserver/edge-s6-3.1.6.2
Bump s6 to 3.1.6.2
2023-12-12 20:27:50 +00:00
LinuxServer-CI 4f34b542ac Bot Updating Package Versions 2023-12-09 13:27:37 +00:00
TheSpad b6c358e64f
Bump s6 to 3.1.6.2 2023-12-08 19:43:59 +00:00
LinuxServer-CI 284e69f176 Bot Updating Package Versions 2023-12-02 13:26:30 +00:00
LinuxServer-CI 6d1c1f849b Bot Updating Package Versions 2023-11-20 17:58:22 +00:00
Eric Nemchik 4ecd7f46ba
Merge pull request #215 from linuxserver/edge-cron-user-file
Add cron user file
2023-11-20 11:57:43 -06:00
Eric Nemchik 3bef857915
Merge pull request #212 from linuxserver/edge-etc-cron
Import crontabs from etc
2023-11-20 11:56:20 -06:00
Eric Nemchik 0257ba04d9
Add cron user file
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-20 11:08:45 -06:00
Eric Nemchik 0358b6b025
Import crontabs from etc
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-19 14:47:59 -06:00
Eric Nemchik 49deb4ddaa
Merge pull request #209 from linuxserver/edge-silent-cron
silent cron
2023-11-11 16:06:03 -06:00
LinuxServer-CI 64eeda7156 Bot Updating Package Versions 2023-11-11 21:34:25 +00:00
Adam ebfec13d2e
Merge pull request #205 from linuxserver/edge-secrets
Warn about newlines in secrets (edge)
2023-11-11 21:32:22 +00:00
TheSpad dd2888dad2
!0 instead of 1 2023-11-11 20:04:35 +00:00
Eric Nemchik 41e948b266
silent cron
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-11-11 11:11:36 -06:00
LinuxServer-CI 1302f25ad2 Bot Updating Package Versions 2023-11-11 13:26:05 +00:00
TheSpad e8bc56292c
Warn rather than sanitize 2023-11-11 10:36:55 +00:00
TheSpad 7f2898be45
Default to sanitizing newlines in secrets 2023-11-10 14:40:25 +00:00
LinuxServer-CI ef330780bf Bot Updating Package Versions 2023-11-02 22:42:39 +00:00
Eric Nemchik 095734bf9e
Merge pull request #202 from linuxserver/edge-cron-redirect-stderr
Redirect stderr from cron
2023-11-02 17:39:35 -05:00
Eric Nemchik d89cc8d584
Redirect stderr from cron
Signed-off-by: GitHub <noreply@github.com>
2023-11-02 17:11:49 +00:00
LinuxServer-CI abd69f3c43 Bot Updating Package Versions 2023-11-02 15:57:00 +00:00
Eric Nemchik 9be07a1c27
Merge pull request #192 from linuxserver/edge-standard-cron
standard cron edge
2023-11-02 10:53:55 -05:00
LinuxServer-CI 9cff0ac4f0 Bot Updating Package Versions 2023-10-28 13:26:57 +00:00
LinuxServer-CI 3729b96c9c Bot Updating Package Versions 2023-10-21 13:25:41 +00:00
LinuxServer-CI f602f8e6ac Bot Updating Package Versions 2023-10-14 13:29:23 +00:00
LinuxServer-CI 799758031f Bot Updating Templated Files 2023-10-14 13:26:06 +00:00
LinuxServer-CI dbd65483b7 Bot Updating Package Versions 2023-10-07 13:32:15 +00:00
LinuxServer-CI 61bea63547 Bot Updating Templated Files 2023-10-07 13:28:48 +00:00
LinuxServer-CI 338aa58f65 Bot Updating Templated Files 2023-10-07 13:26:04 +00:00
LinuxServer-CI b1e62b73c4 Bot Updating Package Versions 2023-09-30 13:25:31 +00:00
LinuxServer-CI 3157950f61 Bot Updating Package Versions 2023-09-23 13:29:15 +00:00
LinuxServer-CI 9e91d73820 Bot Updating Package Versions 2023-09-16 13:27:52 +00:00
LinuxServer-CI 860633bce1 Bot Updating Package Versions 2023-09-09 13:25:43 +00:00
LinuxServer-CI fc65a5da46 Bot Updating Package Versions 2023-09-02 13:27:12 +00:00
Eric Nemchik 7cb8625629
cron in base
Signed-off-by: Eric Nemchik <eric@nemchik.com>
2023-08-19 13:48:09 -05:00
LinuxServer-CI 0fce2f1754 Bot Updating Package Versions 2023-08-19 13:26:48 +00:00
LinuxServer-CI a571df4809 Bot Updating Package Versions 2023-08-12 13:25:11 +00:00
LinuxServer-CI 17f9381bdf Bot Updating Package Versions 2023-08-05 13:26:42 +00:00
LinuxServer-CI 02bff28cce Bot Updating Package Versions 2023-07-29 13:26:42 +00:00
LinuxServer-CI 1ff200d0b5 Bot Updating Package Versions 2023-07-22 13:27:04 +00:00
LinuxServer-CI b0e4417743 Bot Updating Package Versions 2023-07-15 13:33:37 +00:00
LinuxServer-CI cf3e0080cc Bot Updating Package Versions 2023-07-08 13:32:43 +00:00
LinuxServer-CI ed5c6017a5 Bot Updating Package Versions 2023-07-01 13:35:47 +00:00
LinuxServer-CI 779d13725d Bot Updating Templated Files 2023-07-01 13:33:32 +00:00
LinuxServer-CI ceaf29fe22 Bot Updating Templated Files 2023-07-01 13:31:08 +00:00
LinuxServer-CI ba3b07f08d Bot Updating Package Versions 2023-06-24 13:33:55 +00:00
LinuxServer-CI 7bc86150cb Bot Updating Package Versions 2023-06-17 13:27:03 +00:00
LinuxServer-CI a59af42d8d Bot Updating Package Versions 2023-06-10 13:27:11 +00:00
LinuxServer-CI 166e817625 Bot Updating Package Versions 2023-06-03 13:27:43 +00:00
LinuxServer-CI 913058626e Bot Updating Package Versions 2023-05-27 13:30:13 +00:00
LinuxServer-CI e71da1e729 Bot Updating Templated Files 2023-05-27 13:27:02 +00:00
LinuxServer-CI 044e12d6b8 Bot Updating Package Versions 2023-05-20 13:28:14 +00:00
LinuxServer-CI f20876200d Bot Updating Package Versions 2023-05-16 15:57:45 +00:00
Adam 47eb1158b3
Merge pull request #189 from linuxserver/edge-package-install 2023-05-16 16:56:05 +01:00
TheSpad abaedfc48f
Externalise package-install 2023-05-16 10:44:36 +01:00
LinuxServer-CI 6a6707aa89 Bot Updating Package Versions 2023-05-15 20:26:04 +00:00
Adam 2ab413b631
Merge pull request #184 from linuxserver/edge-s6bump 2023-05-15 21:23:43 +01:00
TheSpad ce069f2039
Create lsiopy venv folder and envs 2023-05-15 21:03:09 +01:00
LinuxServer-CI 46265f64df Bot Updating Package Versions 2023-05-13 13:26:57 +00:00
TheSpad 8d69d6079d
Bump s6 to 3.1.5.0 (Edge) 2023-05-12 19:37:23 +01:00
LinuxServer-CI b0b14f8dc3 Bot Updating Package Versions 2023-05-06 13:26:03 +00:00
LinuxServer-CI fb9369418e Bot Updating Package Versions 2023-04-29 13:31:31 +00:00
LinuxServer-CI c0f75de050 Bot Updating Templated Files 2023-04-29 13:28:55 +00:00
LinuxServer-CI dad1e5cf03 Bot Updating Templated Files 2023-04-29 13:27:01 +00:00
LinuxServer-CI bd78be82f9 Bot Updating Package Versions 2023-04-22 13:28:20 +00:00
LinuxServer-CI 28ce170d28 Bot Updating Package Versions 2023-04-12 23:34:23 +02:00
Adam a8c5509889
Merge pull request #176 from linuxserver/edge-armhf-notice 2023-04-12 22:31:59 +01:00
TheSpad 9f9dce1353
Add armhf deprecation notice 2023-04-12 21:22:31 +01:00
LinuxServer-CI a973248cd8 Bot Updating Package Versions 2023-04-08 15:28:10 +02:00
LinuxServer-CI 1b67e35f18 Bot Updating Package Versions 2023-04-04 01:32:22 -05:00
LinuxServer-CI 5b495ff08a Bot Updating Templated Files 2023-04-04 01:30:17 -05:00
LinuxServer-CI f27de1095a Bot Updating Templated Files 2023-04-04 01:28:40 -05:00
LinuxServer-CI 0f15eec711 Bot Updating Templated Files 2023-04-04 08:26:50 +02:00
LinuxServer-CI 7f4a832a5c Bot Updating Package Versions 2023-03-28 08:28:30 +02:00
LinuxServer-CI a4404bbd8e Bot Updating Package Versions 2023-03-21 01:28:22 -05:00
LinuxServer-CI 74b74e49b9 Bot Updating Package Versions 2023-03-14 07:29:31 +01:00
LinuxServer-CI 0e055a8acf Bot Updating Package Versions 2023-03-07 00:30:44 -06:00
LinuxServer-CI 5c933a46eb Bot Updating Package Versions 2023-03-01 14:14:08 -06:00
Adam 530ba1a28c
Merge pull request #175 from linuxserver/edge-procps 2023-03-01 20:11:56 +00:00
TheSpad be5b98c2b5
Restore procps (ng) 2023-03-01 20:03:23 +00:00
LinuxServer-CI 30cde5e8e5 Bot Updating Package Versions 2023-03-01 20:36:49 +01:00
LinuxServer-CI 490f385516 Bot Updating Templated Files 2023-03-01 20:34:55 +01:00
LinuxServer-CI c111d5c91b Bot Updating Package Versions 2023-03-01 20:26:26 +01:00
Adam cdd04e3104
Merge pull request #172 from linuxserver/edge-branding 2023-03-01 19:24:25 +00:00
TheSpad 0afa4ce2c3
Remove copied contenv, source from mods now 2023-03-01 11:01:47 +00:00
TheSpad 1275a243de
Add netcat-openbsd due to busybox limitations 2023-03-01 09:51:08 +00:00
LinuxServer-CI ab5d466987 Bot Updating Package Versions 2023-02-28 00:32:15 -06:00
TheSpad 1d22f55973
Split branding into its own file 2023-02-26 17:03:27 +00:00
TheSpad 15957aba51
Set first party env for CI 2023-02-26 16:46:58 +00:00
TheSpad 53143efd2d
Custom branding 2023-02-26 16:23:58 +00:00
TheSpad cff454b765
Rename CI check 2023-02-26 16:23:47 +00:00
TheSpad 7bf80db9f3
Remove legacy /run symlink hack 2023-02-26 16:23:34 +00:00
LinuxServer-CI bf4a64624d Bot Updating Package Versions 2023-02-21 07:31:44 +01:00
LinuxServer-CI cf8e7e7266 Bot Updating Package Versions 2023-02-16 16:34:51 +01:00
Adam a6eb9330ac
Merge pull request #169 from linuxserver/edge-rootfs-poc 2023-02-16 15:32:33 +00:00
TheSpad 87c316bf3f
Make packages consistent between arches 2023-02-16 09:28:58 +00:00
TheSpad 12c615f236
Merge branch 'edge' into edge-rootfs-poc 2023-02-16 09:26:31 +00:00
LinuxServer-CI 8fc4f3f43a Bot Updating Package Versions 2023-02-14 07:39:24 +01:00
LinuxServer-CI bf46c6db71 Bot Updating Templated Files 2023-02-14 00:36:33 -06:00
LinuxServer-CI 3c974e330a Bot Updating Templated Files 2023-02-14 07:32:56 +01:00
LinuxServer-CI c482b3a5c4 Bot Updating Package Versions 2023-01-31 07:31:03 +01:00
LinuxServer-CI 38b2afef46 Bot Updating Package Versions 2023-01-24 00:29:33 -06:00
LinuxServer-CI da7a96a53b Bot Updating Package Versions 2023-01-17 07:29:48 +01:00
LinuxServer-CI 727f70a9ba Bot Updating Package Versions 2023-01-10 00:31:28 -06:00
TheSpad f09bf380e9
POC for building rootfs without external scripts 2023-01-07 11:31:51 +00:00
LinuxServer-CI 421e194812 Bot Updating Package Versions 2023-01-02 16:09:26 +01:00
Adam e21ec1b264
Merge pull request #167 from linuxserver/edge-legacy-scripts
Remove legacy scripts check
2023-01-02 15:07:31 +00:00
LinuxServer-CI 6ee98e34e3 Bot Updating Package Versions 2022-12-27 07:29:49 +01:00
LinuxServer-CI f4eead7150 Bot Updating Package Versions 2022-12-20 07:31:17 +01:00
LinuxServer-CI edb4206a79 Bot Updating Package Versions 2022-12-13 00:32:01 -06:00
TheSpad a3588cdd0d
Remove legacy custom file handlers 2022-12-10 18:23:48 +00:00
TheSpad 5d65feb448
Remove legacy scripts check 2022-12-10 17:09:55 +00:00
TheSpad 7742257975
Minor Dockerfile optimisations 2022-12-10 17:09:44 +00:00
LinuxServer-CI c3edb6d5f1 Bot Updating Package Versions 2022-12-06 00:31:06 -06:00
LinuxServer-CI 607bdbc5ab Bot Updating Package Versions 2022-11-29 06:40:46 +00:00
LinuxServer-CI 2b96688a08 Bot Updating Templated Files 2022-11-29 07:38:09 +01:00
LinuxServer-CI 7d735081cb Bot Updating Templated Files 2022-11-29 07:34:55 +01:00
LinuxServer-CI ee4ae6a9f9 Bot Updating Templated Files 2022-11-29 00:32:35 -06:00
LinuxServer-CI e3c7870d9d Bot Updating Package Versions 2022-11-23 08:52:18 -06:00
Adam 9d4fe04a0b
Merge pull request #158 from linuxserver/buildkit-edge 2022-11-23 14:49:59 +00:00
TheSpad 2ce67bd91b
chmod docker-mods script on ADD 2022-11-23 11:22:17 +00:00
LinuxServer-CI 2ba1fe57c9 Bot Updating Package Versions 2022-11-22 07:34:16 +01:00
LinuxServer-CI 111395d6c2 Bot Updating Package Versions 2022-11-15 07:33:41 +01:00
LinuxServer-CI 6928d962a9 Bot Updating Package Versions 2022-11-08 00:37:56 -06:00
LinuxServer-CI 8feeb1c663 Bot Updating Package Versions 2022-11-01 11:44:11 -05:00
LinuxServer-CI bd923f0c07 Bot Updating Package Versions 2022-11-01 01:41:53 -05:00
LinuxServer-CI 5de9de0ac7 Bot Updating Package Versions 2022-10-30 19:00:38 +01:00
Eric Nemchik b65548c428
Merge pull request #156 from linuxserver/edge-migrations
Fix migrations
2022-10-30 12:58:11 -05:00
Eric Nemchik 72f1baf69d Fix migrations 2022-10-29 20:16:23 -05:00
LinuxServer-CI 5d2a37b122 Bot Updating Package Versions 2022-10-25 02:07:31 -05:00
LinuxServer-CI 52378c9c09 Bot Updating Package Versions 2022-10-18 02:08:28 -05:00
LinuxServer-CI f58926b68c Bot Updating Package Versions 2022-10-11 01:56:40 -05:00
LinuxServer-CI 124f57dac9 Bot Updating Package Versions 2022-10-05 19:32:05 +02:00
Adam b8b59937b5
Merge pull request #153 from linuxserver/mods-n-things-edge 2022-10-05 18:29:28 +01:00
TheSpad 0122712ce7
Delete obsolete docker-mods 2022-10-05 18:07:04 +01:00
TheSpad 533d182af5
Pull docker-mods from repo, install jq 2022-10-05 18:05:08 +01:00
LinuxServer-CI ced4151423 Bot Updating Package Versions 2022-10-04 08:45:35 +02:00
LinuxServer-CI fa1f6346b3 Bot Updating Package Versions 2022-09-27 02:02:46 -05:00
LinuxServer-CI bfa368d72a Bot Updating Package Versions 2022-09-20 02:02:58 -05:00
LinuxServer-CI 8777ae5846 Bot Updating Templated Files 2022-09-20 01:59:00 -05:00
Eric Nemchik 2fd631bcab
Merge pull request #147 from linuxserver/custom-svc-clean-edge
Remove custom svc from user bundle
2022-09-13 07:04:39 -05:00
TheSpad a8d588a1ab
Add user bundle removal to legacy block too 2022-09-13 11:19:49 +01:00
TheSpad 8578bfaae9
Fix errors if custom dir is mounted but empty 2022-09-13 11:13:24 +01:00
TheSpad a7a7279625
Don't write readme to services.d 2022-09-13 11:02:38 +01:00
TheSpad 68bbac5106
Remove custom svc from user bundle 2022-09-13 11:01:41 +01:00
LinuxServer-CI 2ff83b7d5e Bot Updating Package Versions 2022-09-13 09:04:59 +02:00
LinuxServer-CI 890ccb111e Bot Updating Package Versions 2022-09-09 23:11:05 +02:00
Adam 083ad3333e
Merge pull request #145 from linuxserver/edge-custom-rework 2022-09-09 22:09:02 +01:00
TheSpad b21fa71c22
Use DIR vars for folder check 2022-09-09 19:45:10 +01:00
TheSpad 019aa0a3d1
Move var declaration to top of file for clarity. 2022-09-09 16:39:24 +01:00
TheSpad 54f6d84100
Remove the *old* scripts dir, not the new one 2022-09-09 16:22:45 +01:00
TheSpad e109ae692e
Fix missing output prefix 2022-09-06 15:46:58 +01:00
TheSpad 0a22896061
Standardise output 2022-09-06 15:45:38 +01:00
TheSpad c21860dab0
Handle multiple mods cleanly 2022-09-06 11:04:56 +01:00
TheSpad ce139478ca
Remove Fedora logic 2022-09-06 10:52:16 +01:00
TheSpad eab3b6ba11
Fix package install logic 2022-09-06 09:45:47 +01:00
LinuxServer-CI cab3eeadd4 Bot Updating Package Versions 2022-09-06 02:08:24 -05:00
TheSpad 9b539b59ab
Fix pip args 2022-09-05 22:32:17 +01:00
TheSpad f121ec8620
Allow word splitting 2022-09-05 21:55:44 +01:00
TheSpad 02a44ac5cc
Rework legacy custom file handling 2022-09-05 17:50:07 +01:00
aptalca f49f2a7ff7
Merge pull request #139 from linuxserver/custom-user-bundle-edge
Add custom services to user bundle
2022-09-03 08:38:43 -04:00
TheSpad a97c9e1e38
Remove vscode's trailling spaces 2022-09-03 11:09:07 +01:00
TheSpad 84b75be898
Add custom services to user bundle 2022-09-03 11:06:41 +01:00
LinuxServer-CI 4e105eaa63 Bot Updating Package Versions 2022-09-02 16:10:10 +02:00
Adam a69767921d
Merge pull request #135 from linuxserver/fix-custom-svc-logic-edge 2022-09-02 15:07:47 +01:00
TheSpad 6053d93709
Fix custom svc logic 2022-09-02 11:02:50 +01:00
LinuxServer-CI 1daac311c0 Bot Updating Package Versions 2022-08-30 04:54:08 -05:00
Adam 30bfc83a2f
Merge pull request #129 from linuxserver/custom-script-banner-edge 2022-08-30 10:51:31 +01:00
LinuxServer-CI 7570b86c3b Bot Updating Package Versions 2022-08-30 02:00:49 -05:00
TheSpad b0b95aaf4a
Bump s6 to 3.1.2.1 to fix regression 2022-08-29 23:07:09 +01:00
TheSpad c344d785c5
Fix missing exit 2022-08-28 23:18:44 +01:00
TheSpad c5a4ced80b
Fix custom script banner tee 2022-08-28 23:17:46 +01:00
Adam ed49acfed9
Merge pull request #124 from linuxserver/scriptcheck-fix-edge 2022-08-28 22:02:56 +01:00
TheSpad 84040bc356
Fix tamper check for custom files 2022-08-28 20:31:20 +01:00
TheSpad fe4b20c671
Fix exit code 2022-08-28 20:19:55 +01:00
LinuxServer-CI 29137ee134 Bot Updating Package Versions 2022-08-28 13:10:18 -05:00
LinuxServer-CI 2ebffb0738 Bot Updating Templated Files 2022-08-28 13:07:49 -05:00
Adam 0d0b87bb49
Fully v3ify edge image (#120)
Co-authored-by: Eric Nemchik <eric@nemchik.com>
2022-08-28 19:06:31 +01:00
LinuxServer-CI 62ae36fb72 Bot Updating Package Versions 2022-08-23 01:42:08 -05:00
LinuxServer-CI 04211457f4 Bot Updating Package Versions 2022-08-16 01:34:09 -05:00
LinuxServer-CI 4d37e5c5c3 Bot Updating Package Versions 2022-08-09 08:36:13 +02:00
LinuxServer-CI 5d3b1775c9 Bot Updating Package Versions 2022-07-31 07:35:07 -05:00
aptalca eff3e3eedc
Merge pull request #115 from linuxserver/mod-package-edge
Universal mod package install
2022-07-31 08:32:39 -04:00
TheSpad 49dd15767a
Remove "nothing to do" echo 2022-07-29 17:26:02 +01:00
TheSpad e76811827f
Fix apk path 2022-07-29 17:23:40 +01:00
TheSpad 590130ad99
Only install required deps 2022-07-29 16:08:05 +01:00
TheSpad 1b550ca3f9
Universal mod package install 2022-07-29 15:50:47 +01:00
aptalca 2737e61942
Merge pull request #111 from linuxserver/mod-init-edge
Add mod-init
2022-07-26 12:37:29 -04:00
TheSpad 18c31c9b0c
Add init-services anchor 2022-07-23 12:56:43 +01:00
TheSpad d99cb187ee
Add mod-init 2022-07-22 20:56:06 +01:00
LinuxServer-CI b1212c2c63 Bot Updating Package Versions 2022-07-22 14:09:53 -05:00
Adam 6940c21a26
Merge pull request #104 from linuxserver/hybrid-mods-edge 2022-07-22 20:07:22 +01:00
TheSpad ae04d9f853
Fix curl retry 2022-07-22 15:56:21 +01:00
TheSpad 303d9e527a
Support hybrid mods 2022-07-22 15:49:00 +01:00
LinuxServer-CI 180013c3ff Bot Updating Package Versions 2022-07-19 01:34:32 -05:00
LinuxServer-CI 8306959bdf Bot Updating Package Versions 2022-07-12 01:35:33 -05:00
LinuxServer-CI a920f18aad Bot Updating Package Versions 2022-07-05 01:34:09 -05:00
LinuxServer-CI d8263b9b59 Bot Updating Package Versions 2022-06-28 08:34:30 +02:00
LinuxServer-CI fd841ad988 Bot Updating Package Versions 2022-06-20 19:06:37 -05:00
TheSpad 4020c0ea29 Fix umask handling for s6 v3 2022-06-20 20:04:13 -04:00
Adam 71347b20aa
Merge pull request #100 from linuxserver/edge-arch 2022-06-15 15:42:57 +01:00
TheSpad 734ee147d6
Fix s6 arch 2022-06-15 15:35:17 +01:00
aptalca bd048d2dab
Merge pull request #99 from linuxserver/edge-timeout
Set s6 service max timeout to 0
2022-06-14 12:17:00 -04:00
TheSpad aeedb5a69c
Set s6 service max timeout to 0 2022-06-14 16:05:04 +01:00
LinuxServer-CI 6d04250a39 Bot Updating Package Versions 2022-06-13 23:20:42 +02:00
Adam 7bc173af84
Merge pull request #96 from linuxserver/s6-3.1.0.1-edge
Migrate Edge base to s6 v3.1.0.1
2022-06-13 22:18:22 +01:00
LinuxServer-CI 1b555292e6 Bot Updating Package Versions 2022-06-07 01:32:46 -05:00
TheSpad 1e7c0ef688
Trailing newline 2022-06-03 17:33:27 +01:00
TheSpad 04de9a73ff
Fix shim service path 2022-06-03 14:41:46 +01:00
TheSpad badd6b7ed5
Add compatibility shim for v2 scandir 2022-06-03 14:31:18 +01:00
LinuxServer-CI 3e715f2556 Bot Updating Package Versions 2022-05-31 01:34:21 -05:00
TheSpad c09dc7bb58
Fix missing rootfs stage packages 2022-05-29 17:13:26 +01:00
TheSpad bcd66ca9d5
Initial s6 v3 commit 2022-05-29 17:11:29 +01:00
LinuxServer-CI 9932e2d924 Bot Updating Package Versions 2022-05-24 08:34:16 +02:00
LinuxServer-CI 2bfe2a86ac Bot Updating Package Versions 2022-05-17 01:34:44 -05:00
LinuxServer-CI ad1368e6ba Bot Updating Package Versions 2022-05-10 01:33:57 -05:00
LinuxServer-CI e7b17bad12 Bot Updating Package Versions 2022-05-03 08:33:32 +02:00
LinuxServer-CI e3e9c396a1 Bot Updating Package Versions 2022-04-26 08:33:08 +02:00
LinuxServer-CI 74609f330b Bot Updating Package Versions 2022-04-21 14:07:34 -05:00
aptalca 9c1b874f34
Merge pull request #89 from linuxserver/edge-modcurl
add retry to mod curls
2022-04-21 15:04:50 -04:00
aptalca fb54e102f6 add retry to mod curls 2022-04-20 09:52:23 -04:00
LinuxServer-CI acc7f819bd Bot Updating Package Versions 2022-04-19 08:33:17 +02:00
LinuxServer-CI 511d84e574 Bot Updating Package Versions 2022-04-12 01:32:40 -05:00
LinuxServer-CI b2fbba6342 Bot Updating Package Versions 2022-04-05 08:32:40 +02:00
LinuxServer-CI 070dab87cb Bot Updating Package Versions 2022-03-29 01:32:21 -05:00
LinuxServer-CI e90b30c8b4 Bot Updating Package Versions 2022-03-22 07:31:28 +01:00
LinuxServer-CI c9237aaa39 Bot Updating Package Versions 2022-03-15 01:31:36 -05:00
LinuxServer-CI b1377c0b7c Bot Updating Package Versions 2022-03-08 07:31:23 +01:00
LinuxServer-CI 9809b45ad3 Bot Updating Package Versions 2022-03-01 07:31:29 +01:00
LinuxServer-CI 8703692f9b Bot Updating Package Versions 2022-02-23 20:37:25 +01:00
thelamer 6db4cd0ec3 add edge branch 2022-02-23 11:31:17 -08:00
95 changed files with 1231 additions and 1126 deletions

View file

@ -15,6 +15,6 @@ trim_trailing_whitespace = false
indent_style = space
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_size = 4

View file

@ -6,7 +6,7 @@
* 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 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
@ -24,7 +24,7 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-baseimage-alpine/edit/master/readme-vars.yml).
Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-baseimage-alpine/edit/edge/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io)
@ -105,17 +105,17 @@ docker build \
-t linuxserver/baseimage-alpine: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
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`.
## Update the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-baseimage-alpine/tree/master/root), add an entry to the changelog
If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-baseimage-alpine/tree/edge/root), add an entry to the changelog
```yml
changelogs:

View file

@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Discord chat support
url: https://discord.gg/YWrKVTn
url: https://linuxserver.io/discord
about: Realtime support / chat with the community and the team.
- 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-alpine" -->

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-alpine"
label: Container logs
placeholder: |
Output of `docker logs baseimage-alpine`
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

View file

@ -21,7 +21,7 @@
------------------------------
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-alpine/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
- [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-alpine/blob/edge/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------

16
.github/workflows/call_issue_pr_tracker.yml vendored Executable file
View file

@ -0,0 +1,16 @@
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]
jobs:
manage-project:
permissions:
issues: write
uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
secrets: inherit

13
.github/workflows/call_issues_cron.yml vendored Executable file
View file

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

View file

@ -4,13 +4,22 @@ on:
workflow_dispatch:
jobs:
external-trigger-master:
external-trigger-edge:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
- name: External Trigger
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/edge'
env:
SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
run: |
echo "**** No external release, exiting ****"
printf "# External trigger for docker-baseimage-alpine\n\n" >> $GITHUB_STEP_SUMMARY
echo "Type is \`os\`" >> $GITHUB_STEP_SUMMARY
echo "No external release, exiting" >> $GITHUB_STEP_SUMMARY
exit 0
if grep -q "^baseimage-alpine_edge_${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

View file

@ -2,42 +2,44 @@ name: External Trigger Scheduler
on:
schedule:
- cron: '52 * * * *'
- cron: '20 * * * *'
workflow_dispatch:
jobs:
external-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: External Trigger Scheduler
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
echo "**** Pulling the yq docker image ****"
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
printf "# External trigger scheduler for docker-baseimage-alpine\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/jenkins-vars.yml \
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
if [ "$br" == "$ls_branch" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${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-alpine/${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 \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-baseimage-alpine/actions/workflows/external_trigger.yml/dispatches
else
echo "**** Workflow doesn't exist; skipping trigger. ****"
echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
fi
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
done

View file

@ -8,6 +8,6 @@ jobs:
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-alpine/blob/master/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-baseimage-alpine/blob/master/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-alpine/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
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-alpine/blob/edge/.github/PULL_REQUEST_TEMPLATE.md)!'
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_ALPINE_MASTER }}" ]; then
echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_ALPINE_MASTER is set; skipping trigger. ****"
exit 0
fi
if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-alpine/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_ALPINE_MASTER\". ****"
response=$(curl -iX POST \
https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-alpine/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,99 @@ name: Package Trigger Scheduler
on:
schedule:
- cron: '01 6 * * 2'
- cron: '15 13 * * 6'
workflow_dispatch:
jobs:
package-trigger-scheduler:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/checkout@v4.1.1
with:
fetch-depth: '0'
- name: Package Trigger Scheduler
env:
SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
run: |
echo "**** Branches found: ****"
git for-each-ref --format='%(refname:short)' refs/remotes
echo "**** Pulling the yq docker image ****"
docker pull ghcr.io/linuxserver/yq
for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
printf "# Package trigger scheduler for docker-baseimage-alpine\n\n" >> $GITHUB_STEP_SUMMARY
printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
do
br=$(echo "$br" | sed 's|origin/||g')
echo "**** Evaluating branch ${br} ****"
ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/jenkins-vars.yml \
| docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
if [ "${br}" == "${ls_branch}" ]; then
echo "**** Branch ${br} appears to be live; checking workflow. ****"
if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
triggered_branches="${triggered_branches}${br} "
curl -iX POST \
-H "Authorization: token ${{ secrets.CR_PAT }}" \
-H "Accept: application/vnd.github.v3+json" \
-d "{\"ref\":\"refs/heads/${br}\"}" \
https://api.github.com/repos/linuxserver/docker-baseimage-alpine/actions/workflows/package_trigger.yml/dispatches
sleep 30
if [[ "${br}" == "HEAD" ]]; then
printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
continue
fi
printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/jenkins-vars.yml)
if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/Jenkinsfile >/dev/null 2>&1; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
skipped_branches="${skipped_branches}${br} "
elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-alpine/${br}/readme-vars.yml)
if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
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-alpine_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`baseimage-alpine_${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-alpine/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
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-alpine_%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-alpine/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
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
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-alpine/activity/ \n"
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 ****"
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-alpine** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-baseimage-alpine/activity/"' \n"}],
"description": "**Package Check Build(s) for baseimage-alpine** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
"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,72 +1,89 @@
FROM alpine:3.14 as rootfs-stage
# syntax=docker/dockerfile:1
FROM alpine:3 AS rootfs-stage
# environment
ENV REL=v3.15
ENV ROOTFS=/root-out
ENV REL=edge
ENV ARCH=x86_64
ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine
ENV PACKAGES=alpine-baselayout,\
alpine-keys,\
apk-tools,\
busybox,\
libc-utils,\
xz
libc-utils
# install packages
RUN \
apk add --no-cache \
bash \
curl \
tzdata \
xz
# fetch builder script from gliderlabs
# build rootfs
RUN \
curl -o \
/mkimage-alpine.bash -L \
https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \
chmod +x \
/mkimage-alpine.bash && \
./mkimage-alpine.bash && \
mkdir /root-out && \
tar xf \
/rootfs.tar.xz -C \
/root-out && \
mkdir -p "$ROOTFS/etc/apk" && \
{ \
echo "$MIRROR/$REL/main"; \
echo "$MIRROR/$REL/community"; \
} > "$ROOTFS/etc/apk/repositories" && \
apk --root "$ROOTFS" --no-cache --keys-dir /etc/apk/keys add --arch $ARCH --initdb ${PACKAGES//,/ } && \
sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow
# set version for s6 overlay
ARG S6_OVERLAY_VERSION="3.2.0.2"
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
FROM scratch
COPY --from=rootfs-stage /root-out/ /
ARG BUILD_DATE
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 maintainer="TheLamer"
# set version for s6 overlay
ARG OVERLAY_VERSION="v2.2.0.3"
ARG OVERLAY_ARCH="amd64"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/
RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer
COPY patch/ /tmp/patch
ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods"
ADD --chmod=755 "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"
ADD --chmod=755 "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
ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
HOME="/root" \
TERM="xterm"
HOME="/root" \
TERM="xterm" \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \
S6_VERBOSITY=1 \
S6_STAGE2_HOOK=/docker-mods \
VIRTUAL_ENV=/lsiopy \
PATH="/lsiopy/bin:$PATH"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
patch \
tar && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
bash \
ca-certificates \
catatonit \
coreutils \
procps \
curl \
findutils \
jq \
netcat-openbsd \
procps-ng \
shadow \
tzdata && \
echo "**** create abc user and make our folders ****" && \
@ -76,12 +93,9 @@ RUN \
mkdir -p \
/app \
/config \
/defaults && \
mv /usr/bin/with-contenv /usr/bin/with-contenvb && \
patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \
/defaults \
/lsiopy && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*

View file

@ -1,72 +1,89 @@
FROM alpine:3.14 as rootfs-stage
# syntax=docker/dockerfile:1
FROM alpine:3 AS rootfs-stage
# environment
ENV REL=v3.15
ENV ROOTFS=/root-out
ENV REL=edge
ENV ARCH=aarch64
ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine
ENV PACKAGES=alpine-baselayout,\
alpine-keys,\
apk-tools,\
busybox,\
libc-utils,\
xz
libc-utils
# install packages
RUN \
apk add --no-cache \
bash \
curl \
tzdata \
xz
# fetch builder script from gliderlabs
# build rootfs
RUN \
curl -o \
/mkimage-alpine.bash -L \
https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \
chmod +x \
/mkimage-alpine.bash && \
./mkimage-alpine.bash && \
mkdir /root-out && \
tar xf \
/rootfs.tar.xz -C \
/root-out && \
mkdir -p "$ROOTFS/etc/apk" && \
{ \
echo "$MIRROR/$REL/main"; \
echo "$MIRROR/$REL/community"; \
} > "$ROOTFS/etc/apk/repositories" && \
apk --root "$ROOTFS" --no-cache --keys-dir /etc/apk/keys add --arch $ARCH --initdb ${PACKAGES//,/ } && \
sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow
# set version for s6 overlay
ARG S6_OVERLAY_VERSION="3.2.0.2"
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
FROM scratch
COPY --from=rootfs-stage /root-out/ /
ARG BUILD_DATE
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 maintainer="TheLamer"
# set version for s6 overlay
ARG OVERLAY_VERSION="v2.2.0.3"
ARG OVERLAY_ARCH="aarch64"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/
RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer
COPY patch/ /tmp/patch
ADD --chmod=755 "https://raw.githubusercontent.com/linuxserver/docker-mods/mod-scripts/docker-mods.${MODS_VERSION}" "/docker-mods"
ADD --chmod=755 "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"
ADD --chmod=755 "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
ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
HOME="/root" \
TERM="xterm"
HOME="/root" \
TERM="xterm" \
S6_CMD_WAIT_FOR_SERVICES_MAXTIME="0" \
S6_VERBOSITY=1 \
S6_STAGE2_HOOK=/docker-mods \
VIRTUAL_ENV=/lsiopy \
PATH="/lsiopy/bin:$PATH"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
patch \
tar && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
bash \
ca-certificates \
catatonit \
coreutils \
procps \
curl \
findutils \
jq \
netcat-openbsd \
procps-ng \
shadow \
tzdata && \
echo "**** create abc user and make our folders ****" && \
@ -76,17 +93,14 @@ RUN \
mkdir -p \
/app \
/config \
/defaults && \
mv /usr/bin/with-contenv /usr/bin/with-contenvb && \
patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \
/defaults \
/lsiopy && \
echo "**** add qemu ****" && \
curl -o \
/usr/bin/qemu-aarch64-static -L \
"https://lsio-ci.ams3.digitaloceanspaces.com/qemu-aarch64-static" && \
chmod +x /usr/bin/qemu-aarch64-static && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*

View file

@ -1,96 +0,0 @@
FROM alpine:3.14 as rootfs-stage
# environment
ENV REL=v3.15
ENV ARCH=armv7
ENV MIRROR=http://dl-cdn.alpinelinux.org/alpine
ENV PACKAGES=alpine-baselayout,\
alpine-keys,\
apk-tools,\
busybox,\
libc-utils,\
xz
# install packages
RUN \
apk add --no-cache \
bash \
curl \
tzdata \
xz
# fetch builder script from gliderlabs
RUN \
curl -o \
/mkimage-alpine.bash -L \
https://raw.githubusercontent.com/gliderlabs/docker-alpine/master/builder/scripts/mkimage-alpine.bash && \
chmod +x \
/mkimage-alpine.bash && \
./mkimage-alpine.bash && \
mkdir /root-out && \
tar xf \
/rootfs.tar.xz -C \
/root-out && \
sed -i -e 's/^root::/root:!:/' /root-out/etc/shadow
# Runtime stage
FROM scratch
COPY --from=rootfs-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"
# add s6 overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/${OVERLAY_VERSION}/s6-overlay-${OVERLAY_ARCH}-installer /tmp/
RUN chmod +x /tmp/s6-overlay-${OVERLAY_ARCH}-installer && /tmp/s6-overlay-${OVERLAY_ARCH}-installer / && rm /tmp/s6-overlay-${OVERLAY_ARCH}-installer
COPY patch/ /tmp/patch
# environment variables
ENV PS1="$(whoami)@$(hostname):$(pwd)\\$ " \
HOME="/root" \
TERM="xterm"
RUN \
echo "**** install build packages ****" && \
apk add --no-cache --virtual=build-dependencies \
curl \
patch \
tar && \
echo "**** install runtime packages ****" && \
apk add --no-cache \
bash \
ca-certificates \
coreutils \
procps \
shadow \
tzdata && \
echo "**** create abc user and make our folders ****" && \
groupmod -g 1000 users && \
useradd -u 911 -U -d /config -s /bin/false abc && \
usermod -G users abc && \
mkdir -p \
/app \
/config \
/defaults && \
mv /usr/bin/with-contenv /usr/bin/with-contenvb && \
patch -u /etc/s6/init/init-stage2 -i /tmp/patch/etc/s6/init/init-stage2.patch && \
echo "**** add qemu ****" && \
curl -o \
/usr/bin/qemu-arm-static -L \
"https://lsio-ci.ams3.digitaloceanspaces.com/qemu-arm-static" && \
chmod +x /usr/bin/qemu-arm-static && \
echo "**** cleanup ****" && \
apk del --purge \
build-dependencies && \
rm -rf \
/tmp/*
# add local files
COPY root/ /
ENTRYPOINT ["/init"]

869
Jenkinsfile vendored

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,5 @@
<!-- DO NOT EDIT THIS FILE MANUALLY -->
<!-- Please read the https://github.com/linuxserver/docker-baseimage-alpine/blob/master/.github/CONTRIBUTING.md -->
<!-- Please read https://github.com/linuxserver/docker-baseimage-alpine/blob/edge/.github/CONTRIBUTING.md -->
[linuxserverurl]: https://linuxserver.io
[forumurl]: https://forum.linuxserver.io
[ircurl]: https://mibbit.com/?server=irc.libera.chat&channel=%23linuxserver.io

View file

@ -3,9 +3,9 @@
# jenkins variables
project_name: docker-baseimage-alpine
external_type: os
release_type: stable
release_tag: "3.15"
ls_branch: master
release_type: prerelease
release_tag: edge
ls_branch: edge
repo_vars:
- BUILD_VERSION_ARG = 'OS'
- LS_USER = 'linuxserver'
@ -21,6 +21,6 @@ repo_vars:
- CI_PORT='80'
- CI_SSL='true'
- CI_DELAY='30'
- CI_DOCKERENV='TZ=US/Pacific'
- CI_AUTH='user:password'
- CI_DOCKERENV='LSIO_FIRST_PARTY=true'
- CI_AUTH=''
- CI_WEBPATH=''

View file

@ -1,33 +1,51 @@
alpine-baselayout-3.2.0-r18
alpine-keys-2.4-r1
apk-tools-2.12.7-r3
bash-5.1.16-r0
busybox-1.34.1-r4
ca-certificates-20211220-r0
ca-certificates-bundle-20211220-r0
coreutils-9.0-r2
libacl-2.2.53-r0
libattr-2.5.1-r1
libc-utils-0.7.2-r3
libcrypto1.1-1.1.1l-r8
libintl-0.21-r0
libproc-3.3.17-r0
libretls-3.3.4-r2
libssl1.1-1.1.1l-r8
linux-pam-1.5.2-r0
musl-1.2.2-r7
musl-utils-1.2.2-r7
ncurses-libs-6.3_p20211120-r0
ncurses-terminfo-base-6.3_p20211120-r0
procps-3.3.17-r0
readline-8.1.1-r0
s6-ipcserver-2.11.0.0-r0
scanelf-1.3.3-r0
shadow-4.8.1-r1
skalibs-2.11.0.0-r0
ssl_client-1.34.1-r4
tzdata-2021e-r0
utmps-0.1.0.3-r0
xz-5.2.5-r0
xz-libs-5.2.5-r0
zlib-1.2.11-r3
NAME VERSION TYPE
acl-libs 2.3.2-r1 apk
alpine-baselayout 3.7.0-r0 apk
alpine-baselayout-data 3.7.0-r0 apk
alpine-keys 2.5-r0 apk
apk-tools 2.14.9-r1 apk
bash 5.2.37-r0 apk
brotli-libs 1.1.0-r2 apk
busybox 1.37.0-r14 apk
busybox-binsh 1.37.0-r14 apk
c-ares 1.34.4-r0 apk
ca-certificates 20241121-r2 apk
ca-certificates-bundle 20241121-r2 apk
catatonit 0.2.1-r0 apk
coreutils 9.6-r2 apk
coreutils-env 9.6-r2 apk
coreutils-fmt 9.6-r2 apk
coreutils-sha512sum 9.6-r2 apk
curl 8.13.0-r0 apk
findutils 4.10.0-r0 apk
jq 1.7.1-r0 apk
libapk2 2.14.9-r1 apk
libattr 2.5.2-r2 apk
libbsd 0.12.2-r0 apk
libcrypto3 3.3.3-r0 apk
libcurl 8.13.0-r0 apk
libidn2 2.3.7-r0 apk
libintl 0.24-r0 apk
libmd 1.1.0-r0 apk
libncursesw 6.5_p20250216-r0 apk
libproc2 4.0.4-r2 apk
libpsl 0.21.5-r3 apk
libssl3 3.3.3-r0 apk
libunistring 1.3-r0 apk
linux-pam 1.7.0-r2 apk
musl 1.2.5-r10 apk
musl-utils 1.2.5-r10 apk
ncurses-terminfo-base 6.5_p20250216-r0 apk
netcat-openbsd 1.228.1-r0 apk
nghttp2-libs 1.65.0-r0 apk
oniguruma 6.9.10-r0 apk
procps-ng 4.0.4-r2 apk
readline 8.2.13-r0 apk
scanelf 1.3.8-r1 apk
shadow 4.17.3-r0 apk
skalibs-libs 2.14.3.0-r0 apk
ssl_client 1.37.0-r14 apk
tzdata 2025b-r0 apk
utmps-libs 0.1.2.3-r2 apk
zlib 1.3.1-r2 apk
zstd-libs 1.5.7-r0 apk

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

@ -1,119 +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
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,30 +0,0 @@
#!/bin/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 $(ls -1 ${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

@ -1,18 +0,0 @@
#!/usr/bin/with-contenv bash
if ([ -d "/config/custom-cont-init.d" ] && [ -n "$(find /config/custom-cont-init.d ! -user root)" ]) || ([ -d "/config/custom-services.d" ] && [ -n "$(find /config/custom-services.d ! -user root)" ]); then
echo "**** Potential tampering with custom scripts/services detected ****"
randstr=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-8};echo;)
for folder in "/config/custom-cont-init.d" "/config/custom-services.d"; do
if [ -d "${folder}" ]; then
mv "${folder}" "${folder}.${randstr}"
echo "**** Folder ${folder} is moved to ${folder}.${randstr} ****"
fi
done
echo "**** The folders '/config/custom-cont-init.d' and '/config/custom-services.d'; and their contents need to all be owned by root to prevent root escalation inside the container!!! ****"
mkdir -p /config/custom-cont-init.d /config/custom-services.d
chown 0:0 /config/custom-cont-init.d /config/custom-services.d
elif ([ -d "/config/custom-cont-init.d" ] && [ -n "$(find /config/custom-cont-init.d -perm -o+w)" ]) || ([ -d "/config/custom-services.d" ] && [ -n "$(find /config/custom-services.d -perm -o+w)" ]); then
echo "**** The folders '/config/custom-cont-init.d' or '/config/custom-services.d'; or some of their contents have write permissions for others, which is a security risk. ****"
echo "**** Please review the permissions of these two folders and their contents to make sure they are owned by root, and can only be modified by root. ****"
fi

View file

@ -1,56 +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 running an outdated version of libseccomp
To fix this, please visit https://docs.linuxserver.io/faq#libseccomp
Apps will not behave correctly without this
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'
sleep infinity
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,52 @@
#!/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
groupmod -o -g "$PGID" abc
usermod -o -u "$PUID" abc
fi
if { [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; } || [[ ! ${LSIO_FIRST_PARTY} = "true" ]]; then
cat /etc/s6-overlay/s6-rc.d/init-adduser/branding
else
cat /run/branding
fi
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
───────────────────────────────────────'
if [[ -z ${LSIO_NON_ROOT_USER} ]]; then
echo "
User UID: $(id -u abc)
User GID: $(id -g abc)
───────────────────────────────────────"
else
echo "
User UID: $(stat /run -c %u)
User GID: $(stat /run -c %g)
───────────────────────────────────────"
fi
if [[ -f /build_version ]]; then
cat /build_version
echo '
───────────────────────────────────────
'
fi
if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then
lsiown abc:abc /app
lsiown abc:abc /config
lsiown abc:abc /defaults
fi

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,33 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
for cron_user in abc root; do
if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then
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
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 [[ -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
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,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,33 @@
#!/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}"
# Execute migration script in a subshell to prevent it from modifying the current environment
("${MIGRATION}")
EXIT_CODE=$?
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