始终在 Docker 容器中运行 Go http 服务器应用程序

我有一个Docker只运行我创建的二进制文件的容器,Go它是一个带有Gin框架的 http 服务器。我不使用任何其他 Web 服务器,只使用 Go 的内部 http 服务器。在我Dockerfile的文件末尾我有这个:

EXPOSE 80
CMD ["/home/project/microservices/backend/engine/cmd/main"]

docker-compose用来运行容器和restart: always每个容器。它有效!

但我的问题是,如果我创建的 http 服务器由于编程错误或其他原因而失败,它会重新启动吗?我怎样才能检查这个?Docker 有这方面的工具吗?

我试过 go withSupervisord但它有一些问题,我没有成功运行它。

我想要一个解决方法来保持容器内的 http 服务器始终运行。

我能做什么?


GCT1015
浏览 77回答 1
1回答

撒科打诨

您可以尝试从主机中终止进程。使用类似的方法查找进程 IDps&nbsp;-aux&nbsp;|&nbsp;grep&nbsp;main然后使用杀死它sudo&nbsp;kill&nbsp;<process&nbsp;id>然后 Docker 将重新启动它。通过使用docker&nbsp;ps您应该会看到“状态”已更改为类似 的内容Up 10 seconds。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go