Add blog post: systemd vs Supervisor vs runit vs s6 vs containers - #34
Add blog post: systemd vs Supervisor vs runit vs s6 vs containers#34lee101 wants to merge 1 commit into
Conversation
…t vs s6 vs containers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Codex Infinity Start a task on this PR's branch by commenting:
Tasks and logs: https://codex-infinity.com |
❌ Deploy Preview for hownz failed.
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d1d7a91dee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| FROM ubuntu:24.04 | ||
| ADD https://github.com/just-containers/s6-overlay/releases/download/v3.2.0.2/s6-overlay-noarch.tar.xz /tmp | ||
| RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz |
There was a problem hiding this comment.
Install xz-utils before unpacking the s6-overlay tarballs
On a fresh ubuntu:24.04 image this tar -Jxpf step fails because Noble no longer ships xz-utils by default, and the s6-overlay README explicitly notes that .tar.xz extraction may require apt install xz-utils first. Readers who copy this Dockerfile verbatim will hit tar (child): xz: Cannot exec during docker build, so the example needs that package install (or a base image that already provides xz).
Useful? React with 👍 / 👎.
| FROM ubuntu:24.04 | ||
| ADD https://github.com/just-containers/s6-overlay/releases/download/v3.2.0.2/s6-overlay-noarch.tar.xz /tmp | ||
| RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz | ||
| ADD https://github.com/just-containers/s6-overlay/releases/download/v3.2.0.2/s6-overlay-x86_64.tar.xz /tmp |
There was a problem hiding this comment.
Match the s6-overlay download to the target architecture
This hard-codes the amd64 archive. s6-overlay's install docs say to replace x86_64 with the image architecture (arm64 maps to aarch64, etc.), so anyone building the same Dockerfile on Apple Silicon or other non-amd64 hosts will unpack the wrong binaries and end up with a broken /init. Please parameterize the tarball name or at least mark the snippet as amd64-only.
Useful? React with 👍 / 👎.
| **s6 service example:** | ||
|
|
||
| ```bash | ||
| #!/bin/execlineb -P |
There was a problem hiding this comment.
Use the packaged execlineb path in the s6 service example
Because this section presents a generic host-side s6 service, /bin/execlineb is the wrong interpreter path on the common distros named elsewhere in the post: Debian and Alpine package execlineb under /usr/bin, not /bin. Copying this example there produces a No such file or directory failure before the service ever starts, so the shebang should use the packaged path (or switch the example to plain shell).
Useful? React with 👍 / 👎.
Summary
Test plan
npx hexo generateruns without errorsGenerated with Claude Code