我有一个Docker容器,它只运行我创建的Go二进制文件,它是一个带有Gin框架的http服务器。我不使用任何其他的Web服务器,只使用Go的内部http服务器。在文件末尾的Dockerfile中,我有以下内容:
EXPOSE 80
CMD ["/home/project/microservices/backend/engine/cmd/main"]我使用docker-compose来运行容器,并为每个容器运行restart: always。而且起作用了!
但我的问题是,如果我创建的http服务器由于编程错误或其他原因而失败,它将重新启动吗?我怎么查这个?道克有这个工具吗?
我尝试使用Supervisord,但它有一些问题,我没有成功地运行它。
我想要一个解决办法,使http服务器始终在容器中运行。
我能做什么?
发布于 2022-06-20 21:17:37
您可以尝试从主机中删除进程。使用类似的方法查找进程id
ps -aux | grep main然后用
sudo kill <process id>Docker将重新启动它。通过使用
docker ps您应该看到“状态”已更改为类似于Up 10 seconds的内容。
https://stackoverflow.com/questions/72693003
复制相似问题