Dokploy / dokploy

Open Source Alternative to Vercel, Netlify and Heroku.
https://dokploy.com/
Other
6.85k stars 342 forks source link

Request for Adding the Functionality to Terminate Container Startup Process #360

Open Savinykh-Sergey opened 3 weeks ago

Savinykh-Sergey commented 3 weeks ago

What problem will this feature address?

This feature will address the issue that arises when there are errors in the Dockerfile, causing the container to fail to start correctly due to incorrect commands. Currently, the service does not provide the ability to stop the container startup process before it completes, which can lead to the system hanging or being unable to properly handle the error.

Describe the solution you'd like

I would like to have the ability to interrupt the container startup process if it hasn't completed yet, similar to how you can stop a running container. This could be implemented in the container management interface by adding an option to "Terminate Startup," allowing the user to manually interrupt the process.

Describe alternatives you've considered

As a temporary workaround, I manually changed the container status from "Running" to "Done" in the database, which allowed me to terminate the startup process. However, this solution is inconvenient and unintuitive for most users. A simpler and more obvious method integrated into the interface would be much more useful and user-friendly.

Additional context

No response

Siumauricio commented 3 weeks ago

In order to terminate the build of any type of source it is not possible to implement because internally we use queues with redis which is used with bullmq to precisely prevent the server from freezing, and they do not offer a functionality to stop or terminate the running process unless you pay for a paid version. https://github.com/taskforcesh/bullmq/issues/632

An alternative to prevent your server from freezing in case you have very limited resources is to build the image on a ci/cd and push it to a docker registry and in dokploy simply download and run the image so you don't do the heavy process of building the image.

DenisVASI9 commented 3 weeks ago

@Siumauricio Let's use NATS instead of Redis. When cancellation is required, we'll send a broadcast (pub/sub) to all workers and interrupt the task. I'd like to get this functionality as soon as possible and I'm ready to write the concept. Could you reach out on Telegram for a basic consultation?

Siumauricio commented 3 weeks ago

Send me a message on discord @DenisVASI9 https://discord.gg/GgfVjpff