You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,6 @@ Provides base OS, security patches, and tools for quick and easy spinup.
16
16
* Centos 7 builds available, tagged as `-centos-7`
17
17
* Centos 8 builds available, tagged as `-centos-8`
18
18
19
-
20
19
### Tools
21
20
22
21
*[S6](https://github.com/just-containers/s6-overlay) process supervisor is used for `only` for zombie reaping (as PID 1), boot coordination, and termination signal translation
@@ -57,27 +56,33 @@ S6_KILL_FINISH_MAXTIME | S6_KILL_FINISH_MAXTIME=55000 | The maximum time (in ms)
57
56
S6_KILL_GRACETIME | S6_KILL_GRACETIME=500 | Wait time (in ms) for S6 finish scripts before sending kill signal. This value has a max of 65535 on Alpine variants.
58
57
59
58
*`with-contenv` tool, which is used to expose environment variables across scripts, has a limitation that it cannot read beyond 4k characters for environment variable values. To work around this issue, use the script `/scripts/with-bigcontenv` instead of `with-contenv`. You'll need to remove the `with-contenv` from the shebang line, and add `source /scripts/with-bigcontenv` in the next line after the shebang line.
59
+
60
60
### Startup/Runtime Modification
61
61
62
62
To inject changes just before runtime, shell scripts may be placed into the
63
63
`/etc/cont-init.d` folder.
64
64
As part of the process manager, these scripts are run in advance of the supervised processes. @seehttps://github.com/just-containers/s6-overlay#executing-initialization-andor-finalization-tasks
65
65
66
+
### Processor Architectures
67
+
68
+
All variants are tested on x64 and arm64.
69
+
The convenience script `archstring` is provided to switch between strings based on the current machine.
70
+
Usage:
71
+
```archstring --x64 intel --arm64 arm```
72
+
Which will return "intel" when on x64 and arm when on arm64. This is handy when package names or download paths need to be modified per architecture.
73
+
66
74
### Testing
67
75
68
76
- Container tests itself as part of build process using [goss](https://github.com/aelsabbahy/goss) validator. To add additional build-time tests, overwrite (or extend) the `./container/root/goss.base.yaml` file.
69
77
- To initiate run-time validation, please execute `test.sh`. It uses [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) validator. To add additional run-time tests, extend `./test.sh` and `./goss.yaml` file.
70
78
71
-
72
-
73
79
### Advanced Modification
74
80
75
81
More advanced changes can take effect using the `run.d` system. Similar to the `/etc/cont-init.d/` script system, any shell scripts (ending in .sh) in the `/run.d/` folder will be executed ahead of the S6 initialization.
76
82
77
83
- If a `run.d` script terminates with a non-zero exit code, container will stop, terminating with the script's exit code, unless...
78
84
- If script terminates with exit code of $SIGNAL_BUILD_STOP (99), this will signal the container to stop cleanly. This can be used for a multi-stage build process
79
85
80
-
81
86
### Shutdown Behavior
82
87
83
88
#### Sequence of events for a crashed supervised service:
0 commit comments