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

Support local execution improvements to docker components #14

Open
avivpxi opened this issue Feb 17, 2024 · 0 comments
Open

Support local execution improvements to docker components #14

avivpxi opened this issue Feb 17, 2024 · 0 comments

Comments

@avivpxi
Copy link
Collaborator

avivpxi commented Feb 17, 2024

When running environments locally, you commonly want to execute some components off ENVITE to be able to execute newer versions that not yet available via docker images, you want to test local changes, debug issues and so on. All of those will be easier when not running via docker containers.

Suppose you have an environment of 3 layers:

layer1: component1, component2
layer2: component3, component4
layer3: component5, component6

Now how can we operate when we want to run component3 in our IDE, for example, instead of via a docker container. Typically, we need to first apply a state for components 1, 2, and 3 to run. When this is done we can manually run component 4 in our IDE. Then when we're done we can go back to ENVITE and start components 5 and 6.

This can be cumbersome. We have two suggestions to ease this process:

  1. Allow docker components config to define steps to execute a bash script (or something similar) as an alternative to actually running in docker.
  2. Add any kind of support in the UI to mark component3 for local execution instead of the normal docker execution.

Some thoughts:

  • bash scripts by themselves might not do the job since they will not cover running in the IDE or running in debug mode. At least not easily. They will, however, cover running local code outside the IDE, simply by a bash script to a local, relative path.
  • Relative paths need to be addressed somehow. On my machine the path to the source code of component3 is /a/b/c and on someone else's it will be something else.
  • With either solution, we have to implement something in the UI to be able to mark specific components for local execution.
  • Maybe a simplest first implementation can omit the first suggestion for now and provide a way component3 for local execution. Then when we apply all components, when it's time to run component3 the UI will halt everything and let us know ENVITE is waiting for us to start component3 ourselves. Then, once we finish we can click some button to let ENVITE know it can continue applying the rest of the layers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant