Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Better management of entrypoint process #930

Closed
VoVAllen opened this issue Sep 21, 2022 · 6 comments · Fixed by #1051
Closed

feat: Better management of entrypoint process #930

VoVAllen opened this issue Sep 21, 2022 · 6 comments · Fixed by #1051

Comments

@VoVAllen
Copy link
Member

Description

Currently multiple processes are managed under tini by concatenating multiple commands.

Cons:

  • hard to inspect per-process logs
  • hard to inspect errors when start the container

Candidate: https://github.com/F1bonacc1/process-compose


Message from the maintainers:

Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

@kemingy
Copy link
Member

kemingy commented Oct 5, 2022

Another candidate: systemd.

@zwpaper
Copy link
Member

zwpaper commented Oct 5, 2022

systemd may not be a good option, supervisord or some other lightweight options like @VoVAllen mentioned https://github.com/F1bonacc1/process-compose may be better.

there is one more option mentioned in the SO, https://github.com/just-containers/s6-overlay, but I have never tried it before, just posted to be another candidate

ref: https://stackoverflow.com/a/51985145/4242336

@kemingy
Copy link
Member

kemingy commented Oct 5, 2022

systemd may not be a good option, supervisord or some other lightweight options like @VoVAllen mentioned https://github.com/F1bonacc1/process-compose may be better.

I agree that systemd is heavy for this scenario. It looks okay to run systemd in the training or experimental task environments. I won't use it for the online serving containers.

Not sure if the pure Python application like supervisord can be a good fit for this.

there is one more option mentioned in the SO, https://github.com/just-containers/s6-overlay, but I have never tried it before, just posted to be another candidate

I like the idea "one thing per container" of s6. Will check this.

@gaocegege
Copy link
Member

/cc @Zheaoli

@Zheaoli
Copy link
Member

Zheaoli commented Oct 6, 2022

Not sure if the pure Python application like supervisord can be a good fit for this.

supervisord is not a good fit for this for two reasons:

  1. too heavy
  2. the code quality is not good

And I have already checked https://github.com/just-containers/s6-overlay. I think it is tiny enough for use, and it has basic signal management. But I think a little bit concern I have

  1. the pure bash code will increase the difficulty for our customize action
  2. I'm not sure S6 is good enough for the orphan process management

@kemingy kemingy self-assigned this Oct 14, 2022
@kemingy
Copy link
Member

kemingy commented Oct 19, 2022

And I have already checked https://github.com/just-containers/s6-overlay. I think it is tiny enough for use, and it has basic signal management. But I think a little bit concern I have

1. the pure bash code will increase the difficulty for our customize action

2. I'm not sure S6 is good enough for the orphan process management

s6 overlay is a shell wrapper for s6, which is written in C and includes lots of utilities.

My concern is that their configuration is crazy. I have no idea why they love the shell script so deeply.

Another option is Horust. Thanks to RiiR 🦀. The configuration is much easier. Although I know it may not be able to handle the signal very well. But this project is not active.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Archived in project
Development

Successfully merging a pull request may close this issue.

5 participants