docker 安装 ghost 博客
操作系统采用 Alpine 3.6.2-extent x86_64,docker 直接通过 apk 包管理器安装。
其他镜像创建的容器几乎都可以正常运行,唯独与 nodejs
相关的容器无法正常启动,进入容器执行 npm
相关命令会得到 Segmentation fault
错误。
错误原因是 nodejs:alpine
镜像没有预装 paxctl
包,眼前的解决办法是在 ghost 镜像的基础上构建一个新的镜像。
构建新的 ghost 镜像
Dockerfile 内容如下
FROM ghost:alpine
RUN apk add --no-cache paxctl && paxctl -cm `which node`
在 Dockerfile 所在目录执行构建命令
sudo docker build -t getnas/ghost .
使用新的 ghost 镜像创建容器
创建数据卷容器
sudo docker run --name ghost_data \
-v ghost_data:/var/lib/ghost/content \
ghost:alpine /bin/nice
创建 ghost 并运行容器
sudo docker run -d --name ghost \
-p 2368:2368 \
--volumes-from ghost_data \
-e NODE_ENV=production \
-e url=http://home.local:2368 \
--restart always \
getnas/ghost
环境变量中的
url
必须以协议开头http
或https
,且必须为有效的地址。
会员讨论区