当我以分离模式启动Docker容器时,结果通常会更快返回,因为它们不会在控制台上打印出来。当我通过Gitlab的CI / CD运行它时,这对我来说是个问题。
例如,当我在gitlab-ci.yml
的部署阶段使用此命令时:
ssh root@123.123.123.123 docker-compose up -d
这会在我的实例上以IP地址以分离模式启动docker-compose中的所有容器。控制台通常将输出:
MyContainerA ... Done!
MyContainerB ... Done!
<exit>
对于Gitlab CI,部署阶段已成功完成,因为没有错误。
但是,实际上,这不能保证一切都很好,因为容器可能没有在内部成功启动。例如,npm start
可能已失败,并且容器在下一刻退出。
这使CI结果(成功/失败)不可靠。通过CI / CD部署Docker容器是否正常?
通过Gitlab CI / CD(或任何其他CI / CD本身)部署Docker容器的正确方法应该是什么,以使CI的最终结果(成功/失败)考虑容器是否在内部成功启动? ?