@@ -149,6 +149,49 @@ function restore_db_backup() {
149149 say " All done!"
150150}
151151
152+ function clean_orphans_silent() {
153+ # Clean orphans from scaffold silently
154+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml down --remove-orphans > /dev/null 2>&1 || true
155+
156+ # Clean orphans from premium scaffold if it exists
157+ if [ -f " $CLI_HOME /premium-scaffold.yaml" ]; then
158+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml down --remove-orphans > /dev/null 2>&1 || true
159+ fi
160+
161+ # Clean orphans from all service files
162+ for SERVICE in $CONTAINERS
163+ do
164+ $_DC --compatibility -p $PROJECT_NAME -f " $CLI_HOME /services/${SERVICE} .yaml" down --remove-orphans > /dev/null 2>&1 || true
165+ done
166+
167+ # Clean orphans from test environment
168+ $_DC -p " $PROJECT_NAME -test" -f $CLI_HOME /../backend/docker-compose.test.yaml down --remove-orphans > /dev/null 2>&1 || true
169+ }
170+
171+ function clean_orphans() {
172+ say " Cleaning up orphan containers..."
173+
174+ # Clean orphans from scaffold
175+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml down --remove-orphans
176+
177+ # Clean orphans from premium scaffold if it exists
178+ if [ -f " $CLI_HOME /premium-scaffold.yaml" ]; then
179+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml down --remove-orphans
180+ fi
181+
182+ # Clean orphans from all service files
183+ for SERVICE in $CONTAINERS
184+ do
185+ say " Cleaning orphans for service $SERVICE ..."
186+ $_DC --compatibility -p $PROJECT_NAME -f " $CLI_HOME /services/${SERVICE} .yaml" down --remove-orphans
187+ done
188+
189+ # Clean orphans from test environment
190+ $_DC -p " $PROJECT_NAME -test" -f $CLI_HOME /../backend/docker-compose.test.yaml down --remove-orphans 2> /dev/null || true
191+
192+ yell " Orphan cleanup completed!"
193+ }
194+
152195function scaffold() {
153196 HELP=" ${RESET} \nUsage:\n ./cli scaffold [ up | down | destroy | reset ]\n"
154197
@@ -254,9 +297,10 @@ function start_service() {
254297 export GROUP_ID=$( id -g)
255298
256299 if [[ ${DEV} ]]; then
257- $_DC --compatibility -p $PROJECT_NAME -f " $CLI_HOME /services/${1} .yaml" up --build -d ${1} -dev
300+ # Suppress orphan warnings by redirecting stderr, but keep the containers running
301+ $_DC --compatibility -p $PROJECT_NAME -f " $CLI_HOME /services/${1} .yaml" up --build -d ${1} -dev 2> >( grep -v " Found orphan containers" >&2 )
258302 else
259- $_DC --compatibility -p $PROJECT_NAME -f " $CLI_HOME /services/${1} .yaml" up --build -d ${1}
303+ $_DC --compatibility -p $PROJECT_NAME -f " $CLI_HOME /services/${1} .yaml" up --build -d ${1} 2> >( grep -v " Found orphan containers " >&2 )
260304 fi
261305}
262306
@@ -323,8 +367,8 @@ function migrate_local() {
323367
324368function up_test_scaffold() {
325369 scaffold_set_up_network " ${PROJECT_NAME} -bridge-test" $DOCKET_TEST_NETWORK_SUBNET $DOCKER_TEST_NETWORK_GATEWAY
326- $_DC -p " $PROJECT_NAME -test" -f $CLI_HOME /../backend/docker-compose.test.yaml down
327- $_DC -p " $PROJECT_NAME -test" -f $CLI_HOME /../backend/docker-compose.test.yaml up -d
370+ $_DC -p " $PROJECT_NAME -test" -f $CLI_HOME /../backend/docker-compose.test.yaml down --remove-orphans
371+ $_DC -p " $PROJECT_NAME -test" -f $CLI_HOME /../backend/docker-compose.test.yaml up -d --remove-orphans
328372 migrate_test
329373}
330374
@@ -351,7 +395,7 @@ function source_edition() {
351395function check_init_premium() {
352396 source_edition
353397 if [ $__EDITION == " gitmesh-ee" ]; then
354- $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml up -d --build
398+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml up -d --build --remove-orphans
355399 init_unleash
356400 fi
357401}
@@ -367,7 +411,7 @@ function init_unleash() {
367411
368412function up_scaffold() {
369413 scaffold_set_up_network " $PROJECT_NAME -bridge" $DOCKER_NETWORK_SUBNET $DOCKER_NETWORK_GATEWAY
370- $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml up -d --build
414+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml up -d --build --remove-orphans
371415}
372416
373417function post_up_scaffold() {
@@ -377,9 +421,9 @@ function post_up_scaffold() {
377421}
378422
379423function down_scaffold() {
380- $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml down
424+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml down --remove-orphans
381425 if [ -f " $CLI_HOME /premium-scaffold.yaml" ]; then
382- $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml down
426+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml down --remove-orphans
383427 fi
384428}
385429
@@ -419,9 +463,9 @@ function kill_all_containers() {
419463
420464function scaffold_destroy_confirmed() {
421465 kill_all_containers
422- $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml down
466+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /scaffold.yaml down --remove-orphans
423467 if [ -f " $CLI_HOME /premium-scaffold.yaml" ]; then
424- $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml down
468+ $_DC --compatibility -p $PROJECT_NAME -f $CLI_HOME /premium-scaffold.yaml down --remove-orphans
425469 fi
426470
427471 # needed because if there are no volumes this might cause the script to exit
@@ -482,12 +526,16 @@ function start() {
482526 done
483527}
484528
485- SCRIPT_USAGE=" ${YELLOW}${PROJECT_NAME} CLI ${RESET} \n\nExample usage: ./cli [ prod, dev, clean-dev, prod-ee, dev-ee, clean-dev-ee, prod-backend, dev-backend, clean-dev-backend, scaffold =>, service =>, build =>, build-and-push ]"
529+ SCRIPT_USAGE=" ${YELLOW}${PROJECT_NAME} CLI ${RESET} \n\nExample usage: ./cli [ prod, dev, clean-dev, prod-ee, dev-ee, clean-dev-ee, prod-backend, dev-backend, clean-dev-backend, clean-orphans, scaffold =>, service =>, build =>, build-and-push ]"
486530
487531[[ -z " $1 " ]] && say " $SCRIPT_USAGE " && exit 1
488532while test $# -gt 0
489533do
490534 case " $1 " in
535+ clean-orphans)
536+ clean_orphans
537+ exit ;
538+ ;;
491539 scaffold) scaffold $2 $3 $4 $5
492540 echo -e " \nScript ran successfully. Check the website on http://localhost:8081" ;
493541 exit ;
0 commit comments