HH-776: gracefully stop managed browser containers (#15)
This commit is contained in:
+36
-16
@@ -128,7 +128,7 @@ docker compose config --quiet
|
||||
docker compose up --detach --build
|
||||
```
|
||||
|
||||
数据库迁移只支持安全前进,不提供自动破坏性回滚。需要同时恢复旧代码和更新前数据库时,修改下面两个变量后**整块执行一次**;不要逐行或拆块执行。预检、恢复演练、动态容器回收、停服、主库恢复、提交切换和启动都位于同一个 fail-fast subshell 中。
|
||||
数据库迁移只支持安全前进,不提供自动破坏性回滚。需要同时恢复旧代码和更新前数据库时,修改下面两个变量后**整块执行一次**;不要逐行或拆块执行。预检、恢复演练、动态容器停止、停服、主库恢复、提交切换和启动都位于同一个 fail-fast subshell 中。
|
||||
|
||||
```bash
|
||||
(
|
||||
@@ -159,11 +159,22 @@ docker compose up --detach --build
|
||||
docker compose exec -T postgres \
|
||||
dropdb --force -U creatorhub creatorhub_restore_check
|
||||
|
||||
docker ps --all --quiet \
|
||||
--filter 'name=^creatorhub-browser-' \
|
||||
--filter 'label=io.creatorhub.managed=true' \
|
||||
--filter 'label=io.creatorhub.runtime-id' \
|
||||
| xargs --no-run-if-empty docker rm --force
|
||||
list_running_browsers() {
|
||||
docker ps --quiet \
|
||||
--filter 'name=^creatorhub-browser-' \
|
||||
--filter 'label=io.creatorhub.managed=true' \
|
||||
--filter 'label=io.creatorhub.runtime-id'
|
||||
}
|
||||
|
||||
browser_ids="$(list_running_browsers)" || exit 1
|
||||
for browser_id in $browser_ids; do
|
||||
if ! docker stop "$browser_id"; then
|
||||
docker rm --force "$browser_id"
|
||||
fi
|
||||
done
|
||||
|
||||
browser_ids="$(list_running_browsers)" || exit 1
|
||||
test -z "$browser_ids"
|
||||
docker compose stop creator-hub docker-gateway
|
||||
|
||||
umask 077
|
||||
@@ -205,18 +216,27 @@ docker compose up --detach --build
|
||||
|
||||
## 停止与数据保留
|
||||
|
||||
`docker compose stop/down` 不管理网关动态创建的浏览器容器;直接执行会留下运行中的浏览器和活动会话。先严格按固定容器名前缀及两个管理标签筛选并回收,命令不带 `--volumes`,因此 Profile 卷仍会保留:
|
||||
`docker compose stop/down` 不管理网关动态创建的浏览器容器;直接执行会留下运行中的浏览器和活动会话。先严格按固定容器名前缀及两个管理标签筛选并停止;只有单个容器停止失败或超时时才强制删除。命令不带 `--volumes`,因此 Profile 卷仍会保留:
|
||||
|
||||
```bash
|
||||
docker ps --all --quiet \
|
||||
--filter 'name=^creatorhub-browser-' \
|
||||
--filter 'label=io.creatorhub.managed=true' \
|
||||
--filter 'label=io.creatorhub.runtime-id' \
|
||||
| xargs --no-run-if-empty docker rm --force
|
||||
test -z "$(docker ps --all --quiet \
|
||||
--filter 'name=^creatorhub-browser-' \
|
||||
--filter 'label=io.creatorhub.managed=true' \
|
||||
--filter 'label=io.creatorhub.runtime-id')"
|
||||
set -Eeuo pipefail
|
||||
|
||||
list_running_browsers() {
|
||||
docker ps --quiet \
|
||||
--filter 'name=^creatorhub-browser-' \
|
||||
--filter 'label=io.creatorhub.managed=true' \
|
||||
--filter 'label=io.creatorhub.runtime-id'
|
||||
}
|
||||
|
||||
browser_ids="$(list_running_browsers)" || exit 1
|
||||
for browser_id in $browser_ids; do
|
||||
if ! docker stop "$browser_id"; then
|
||||
docker rm --force "$browser_id"
|
||||
fi
|
||||
done
|
||||
|
||||
browser_ids="$(list_running_browsers)" || exit 1
|
||||
test -z "$browser_ids"
|
||||
|
||||
docker compose stop
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user