bash - 在 shell 脚本中退出 docker exec -ti
问题描述
我正在编写一个脚本,在其中执行以下命令:
docker exec -ti keycloak11_service-keycloak_1 /opt/jboss/keycloak/bin/standalone.sh \
-Djboss.socket.binding.port-offset=151 \
-Dkeycloak.migration.action=export \
-Dkeycloak.migration.provider=singleFile \
-Dkeycloak.migration.realmName=demo \
-Dkeycloak.migration.usersExportStrategy=REALM_FILE \
-Dkeycloak.migration.file=/keycloak/realm-export.json
这会从我正在运行的 keycloak 实例中导出文件 realm-export.json。执行后,我想对另一台服务器执行 scp。问题是,当我执行 ti 注释时,独立的 keycloak 启动并且我的脚本卡住了,它说:正在侦听端口...
由于此时导出操作已完成,我可以终止该进程或输入任何命令(即 cmd+c)。有没有办法通过脚本做到这一点?
解决方案
将您的命令放入 Dockerfile 并以分离模式运行容器docker run -d
。您也可以使用绑定挂载从容器访问主机卷。这样,您的结果将存储在主机上,您可以稍后访问它们。
推荐阅读
- visual-studio-code - cordova run android 采用“错误”的数据库
- angular - 如何以角度在 PDF 查看器中添加注释和注释
- swift - SwiftyGif Remote Gif 正在运行但不会显示
- python - 如何使用列表推导在 Pandas 中执行条件列操作?
- android - 无法使用下载管理器下载文件
- reactjs - 反应 event.target.value.slice() 未定义的行为?
- scala - Swagger - 为什么 Swagger 在我没有为其编写注释时创建请求正文字段?
- pandas - 在 Plotly 图表上编辑构面标题
- linux-kernel - 两个节点之间的设备树依赖关系
- gooddata - 如何使用 gooddata-js 找到“本地标识符”以执行 AFM 功能