Docker安装

sudo yum update && sudo yum install docker

ghost部署

使用docker拉取ghost镜像

docker pull ghost

运行ghost容器

sudo docker run -d --name blog -p 2368:2368 -v ~/blogs:/var/lib/ghost/content \
-e url=http://[网站地址].com \
-e mail__transport=SMTP \
-e mail__options__service=Mailgun \
-e mail__options__host=smtp.mailgun.org \
-e mail__options__port=2525 \
-e mail__options__auth__user=***@*** \
-e mail__options__auth__pass=***@*** \
ghost

# 简化版
docker run --restart=always -d --name blog -p 2368:2368 -v ~/usr/local/ghost/content:/var/lib/ghost/content -e url=http://ylzzxt.cn ghost

说明

由于目前挂载目录的不同,还不知道当前版本如何直接把config_production.js放入容器,因此使用环境变量进行配置.

-v ~/blogs:/var/lib/ghost/content 用于挂载存储目录,注意1.0.*的挂载目录是和之前版本不一样的
url=http://jimmylovesfairy.com 用于指定访问的域名,只能用于production环境
mail__* 系列变量用于配置发送邮件的smtp服务器,注意GCP封了常规25,465端口导致只有mailgun等第三方邮件服务商才能被使用,并且要设置2525端口.

Nginx部署

  • 使用docker拉取nginx镜像
docker pull nginx
  • 构建nginx.conf文件
server {
    listen 80;
    listen [::]:80;

    server_name [网站地址];

    location / {
        proxy_pass http://blog:2368;
	    proxy_redirect off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
    }
}
  • 运行nginx容器
docker run --name my-custom-nginx-container -p 80:80 \
-v ~/nginx.conf:/etc/nginx/nginx.conf:ro \
--link blog -d nginx

说明

  • nginx.conf中主要是设置反向代理proxy_pass
  • -v ~/nginx.conf:/etc/nginx/nginx.conf:ro 通过挂载写入nginx配置文件
  • --link blog 连接ghost容器,使得能够用 blog:2368 访问容器端口