Gitlab ci 如何保存用于在Gitlab CI中执行构建的Docker容器?

Gitlab ci 如何保存用于在Gitlab CI中执行构建的Docker容器?,gitlab-ci,gitlab-ci-runner,Gitlab Ci,Gitlab Ci Runner,我将Gitlab CI与使用Docker的runner结合使用。在Gitlab中一个项目的git repo中,我放置了一个.Gitlab-ci.yml文件。推送此文件会导致运行程序根据我提供的Docker映像创建Docker容器。然后运行yml文件中规定的构建步骤。当构建成功时,这种方法非常有效 但是,当构建失败时,我希望能够在用于运行此构建的Docker容器中找到原因。这可能吗 “docker ps”的输出显示容器在生成过程中正在运行,但随后“docker ps-a”的输出显示容器已完全移除。

我将Gitlab CI与使用Docker的runner结合使用。在Gitlab中一个项目的git repo中,我放置了一个.Gitlab-ci.yml文件。推送此文件会导致运行程序根据我提供的Docker映像创建Docker容器。然后运行yml文件中规定的构建步骤。当构建成功时,这种方法非常有效

但是,当构建失败时,我希望能够在用于运行此构建的Docker容器中找到原因。这可能吗


“docker ps”的输出显示容器在生成过程中正在运行,但随后“docker ps-a”的输出显示容器已完全移除。有什么方法可以防止这种情况发生吗?

目前,开发人员并不打算这样做。也许这是可能的,但是如果有办法做到这一点,那么如果您在运行容器之后想要它,那么它就变得复杂而有用。我会说不。在我看来,这与使用docker进行测试的基本思想背道而驰

但我有一个解决办法:

假设您有一个包含
.gitlab ci.yml
文件的项目。无论docker安装在何处,您都可以自己运行docker容器:

docker-run-it-debian:latest

自己做测试。我认为这种方法不实用,但它是一种可能的方法。
可能会有帮助。

不久,web终端(11.3)将实现这一点,它将在连接终端时保持容器的活动状态

我认为他希望保存容器的原因是为了更容易调试,如果构建过程中出现问题,如果我们能够以某种方式保持容器,那么修复它将非常简单。这听起来很有希望,但是目前还不起作用,从您发布的链接来看:“docker executor在生成脚本完成后不会继续运行。此时,终端将自动断开连接,而不会等待用户完成。请关注此问题以了解有关改进此行为的更新”