-
Notifications
You must be signed in to change notification settings - Fork 0
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
Hybrid mode using one user per process is not working #2
Comments
First let me say that the documentation is in great need of some updates, so I apologize if this is because of a gap there. But to your questions. I had a look at your repository for this and know the problem. Supervisor is very, very dumb when it comes to serializing tasks. I see that you have to add the user "transmission" before running as it. But this has failed in so many ways for me. I tried so many hacks to try to get supervisor to run setup tasks before running my actual programs; all for not. So to do this, I've actually relied on very robust entrypoint.sh scripts. Check out my radial examples. To get yours to work, I suggest the following:
Let me know if this helps! |
So i tried what you suggested and I don't know yet if it work. |
This would be file permissions for what exactly? The configuration files? or some other data? Configuration handled by the Hub container already has some sane defaults applied to it that you can check out here. In general, the easiest thing I've found to do would be to actually run the entrypoint script as root after all (so keep |
It's needed for the configuration files because some process need write access to it and sometimes for logs files to write in it. So the default don't work for me here. I thought about using su in the entrypoint.sh and setting |
I personally don't see an issue with using I think the real way to fix this however is just to allow the user to specify the desired folder/file permissions via env vars being passed to the Hub container, as it really is it's job to mange all things configuration, not the Spoke. The spoke should really be plug-and-play. So I'll try to add that functionality later tonight to the |
@bricewge
So in your case, you'd want to specify something like Let me know how this works out for you. |
I've tried to run some docker containers with your template but I stumbled onto a little issue.
In #1 you said supervisor can run a process as any user desired, witch run fine when the wheel is not supposed to be run with several spokes each using a different user for there processes.
Specifying in
build-env
a repo containing a a supervisor config file using a user not present in the spoke result in a broken wheel. It happen when two spokes meant to be running together each use a different user per process.Let say
container1
useuser1
in his supervisor config file andcontainer2
useuser2
;container1
has a build-env set to thecontainer2
repo. Then whencontainer1
is run in either mode, static or hybrid (I didn't tested the dynamic mode), it fail because it looks like supervisor read all the config files in the hub but the one fromcontainer2
specifyinguser2
make supervisrod to stop because he didn't know this specific user.I hope my explanation is not to fuzzy.
The text was updated successfully, but these errors were encountered: