mirror of
https://github.com/tiennm99/coolify.git
synced 2026-10-14 00:16:42 +00:00
fix(proxy): prevent "container name already in use" error during proxy restart
Add wait loops to ensure containers are fully removed before restarting. This fixes race conditions where docker compose would fail because an existing container was still being cleaned up. Changes: - StartProxy: Add explicit stop, wait loop before docker compose up - StopProxy: Add wait loop after container removal - Both actions now poll up to 10 seconds for complete removal - Add error suppression to handle non-existent containers gracefully Tests: - Add StartProxyTest.php with 3 tests for cleanup logic - Add StopProxyTest.php with 4 tests for stop behavior 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
11a7f4c8a7
commit
7a16938f0c
4 files changed
+175
-3
No files matched your search
@@ -24,8 +24,15 @@ class StopProxy
|
||||
}
|
||||
|
||||
instant_remote_process(command: [
|
||||
"docker stop --time=$timeout $containerName",
|
||||
"docker rm -f $containerName",
|
||||
"docker stop --time=$timeout $containerName 2>/dev/null || true",
|
||||
"docker rm -f $containerName 2>/dev/null || true",
|
||||
'# Wait for container to be fully removed',
|
||||
'for i in {1..10}; do',
|
||||
" if ! docker ps -a --format \"{{.Names}}\" | grep -q \"^$containerName$\"; then",
|
||||
' break',
|
||||
' fi',
|
||||
' sleep 1',
|
||||
'done',
|
||||
], server: $server, throwError: false);
|
||||
|
||||
$server->proxy->force_stop = $forceStop;
|
||||
|
||||
Reference in new issue
Block a user