Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
singularity
Singularity has been renamed to Apptainer as part of us moving the project to the Linux Foundation. This repo has been persisted as a snapshot right before the changes.
What? The current gitignore for https://github.com/utam0k/youki/blob/main/.gitignore, the project made by /u/utam0k and the subject of this post, is exactly two lines:
I think you might be looking at the gitignore for https://github.com/opencontainers/runtime-tools/blob/master/.gitignore , which is NOT the repo made by /u/utam0k. That's a large repo from opencontainers that includes many different things, so that .gitignore is bigger but by no means unreasonable.
The re-exec pattern is not the only way you can solve this in Go. I actually rebuilt a container runtime from C to Go (for the HPC market) and we had to solve this problem. We did it by essentially forking before any Go code gets run. Here’s the code for the main binary that actually spawns the container process. It’s half C, half Go. https://github.com/hpcng/singularity/tree/master/cmd/starter