-
-
Notifications
You must be signed in to change notification settings - Fork 160
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
Switch from supervisord to s6-overlay #293
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a bunch of boomer-tier remarks, but overall this seems nice, how much space do you gain by removing python and supervisord?
You'll also need to rebase this to match the Dockerfile changes I made earlier.
Should be inline with dev now, I think I solved the conflicts correctly. |
e378ca8
to
26f0333
Compare
merge commits are fucked, I rebased like I should have to begin with |
The tests are failing rn due to the nightly build being super fucked, things should go back to normal whenever actions are done rebuilding a full nightly image. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some more comments.
I pushed a quick-ass fix to the old supervisord entrypoint yesterday so you should probably do another rebase. 🙇♂️ Sorry about that.
changing anything in tools folder causes whole build to retrigger, avoid that
previous removed in install-everything.sh
it gets excluded by the dockerignore file otherwise, and the copy technically happens in the docker layer, so
redis tells us this on startup itself
we make extensive use of envvars in lrr and the setup scripts there shouldn't be anything sensitive, so pass them to all processes with this, rather than restrictively using `with-contenv`
de8bdf6
to
7f6ac38
Compare
Rebased, should be inline. |
You forgot to re-add the install script to the COPY line, so it breaks the build. |
So I did, duh. Fixed now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I ran some internal testing and found a few remaining issues.
Almost there, though! 🐳
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lookin' good!
Huh, interesting. My docker images were still around 150MB. Were there other optimizations to reduce it that much more? No problem, glad to help! |
This is the compressed size, so unpacked it'll still be around 150, same as the Docker images. |
Ah, gotcha. Thought that's what the |
* initial s6 transition * move install-everything.sh to Dockerfile changing anything in tools folder causes whole build to retrigger, avoid that * add .dockerignore excluding documentation previous removed in install-everything.sh * move wsl.conf to docker folder it gets excluded by the dockerignore file otherwise, and the copy technically happens in the docker layer, so * remove redis overcommit_memory messages redis tells us this on startup itself * set S6_KEEP_ENV we make extensive use of envvars in lrr and the setup scripts there shouldn't be anything sensitive, so pass them to all processes with this, rather than restrictively using `with-contenv` * set uid and gid for services * terminate lrr also if the service fails * set s6 stage 2 fail early and kill time opts * remove manual inotify2 call #293 (comment) * revert install-everything.sh consolidation * remove chmod +x and set exec directly on file * fix old comment * add install-everything.sh to tools * Update tools/build/docker/s6/services.d/redis/run Co-authored-by: Difegue <[email protected]> * readd redis OVERCOMMIT warning * move redis.conf back to tools/build/docker Co-authored-by: koma-cute <[email protected]> Co-authored-by: koma-cute <[email protected]> Co-authored-by: Difegue <[email protected]>
Pulling in all of Python just for supervisord is pretty heavy, so we're using s6-overlay to manage running lrr and redis instead.
fix-attrs.d
isn't used right now since it doesn't have the exact granular control that the previousentrypoint.sh
script did (chowning some stuff's user recursively, but not the mode). The file is there for now, but not copied into the docker image.