重新启动在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]
。