2

我正在使用Official Ghost Docker Image,并且可以毫无问题地运行 ghost。

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

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

ERROR: (EADDRINUSE) Cannot start Ghost.

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

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

kill -9 *node process ID*

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

有任何想法吗?

4

1 回答 1

2

这就是我在 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对于 docker 容器随机崩溃时很有用。它会自动重新启动它们。

通过执行列出您的 docker 容器,docker ps您应该会得到如下信息:

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].

于 2016-07-27T07:33:04.447 回答