重启在Docker中运行的ghost博客

时间:2016-01-09 19:52:28

标签: node.js docker ghost

我正在使用Official Ghost Docker Image,并且幽灵在没有问题的情况下运行。

我正在主机上本地开发一个主题,它作为容器内的卷安装。与任何正在运行的ghost实例一样,为了查看主题更改,我需要停止并重新启动ghost。

通常这只是意味着结束Node进程并再次运行npm start。但在官方Docker镜像中,这不是一个选择。如果我尝试运行npm start,我告诉:

ERROR: (EADDRINUSE) Cannot start Ghost.

这是有道理的,因为端口 已在使用中。

我尝试手动查杀进程但没有成功。如果我用

杀死节点进程

kill -9 *node process ID*

容器崩溃了。我也尝试过杀死npm进程,但这似乎永远不会失败。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是我在docker中部署我的幽灵博客的方式:

docker run --name some-blog -d -p 80:2368 -e VIRTUAL_HOST=domain.com -v /home/ghost/blogfiles/:/var/lib/ghost --restart unless-stopped ghost

当docker容器随机崩溃时,--restart unless-stopped非常有用。它会自动重启它们。

通过执行docker ps列出您的docker容器,您应该得到这样的内容:

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                                            NAMES
11d2517205de        ghost                    "/entrypoint.sh npm s"   2 hours ago         Up About a minute   0.0.0.0:80->2368/tcp                             some-blog

要重新启动泊坞窗容器,您可以docker stop [container id]docker start [container id]或只需docker restart [container id]