重新启动在Docker内运行的幽灵博客

我正在使用官方Ghost Docker Image ,并且运行ghost时没有问题。

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

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

ERROR: (EADDRINUSE) Cannot start Ghost.

这是有道理的,因为港口已经在使用。

我试过手动杀死进程没有成功。 如果我杀死节点进程

kill -9 *node process ID*

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

有任何想法吗?

这是我如何在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

--restart unless-stopped容器随机崩溃时--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容器,您可以执行docker stop [container id]docker start [container id]或只是docker restart [container id]