在 docker 上部署 Ghost 博客网站

在 docker 上部署 Ghost 博客网站

Ghost 是使用 Node.js 语言编写的开源博客平台,使用 Ghost 可以快速搭建博客,简化在线出版过程。

  1. 安装 docker 和 docker-compose (如果还没有安装)
# 建议用 root 用户运行
# install docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh

# install docker-compose
curl -SL https://github.com/docker/compose/releases/download/v2.29.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
  1. 安装 MySQL 或 MariaDB 数据库,安装 MariaDB 可参考我写的安装教程
在ubuntu和debian上安装MariaDB数据库
MariaDB Server 是一个通用的开源关系数据库管理系统。 它是世界上最受欢迎的数据库服务器之一。 当 MariaDB Server 的前身 MySQL 于 2009 年被 Oracle 收购时,MySQL 创始人 Michael “Monty” Widenius 出于对 Oracle 管理权的担忧而分叉了该项目,并将新项目命名为 MariaDB。 MySQL 以他的第一个女儿 My 命名,而 MariaDB 则以他的第二个女儿 Maria 命名。 大多数原始开发人员加入了新项目,此后 MariaDB Server 继续快速发展。 1. 安装MariaDB数据库 apt install mariadb-server 2. MariaDB安全设置 mysql_secure_installation 设置中会问一些问题,具体解释可以看屏幕提示,
  1. 创建 Ghost 的数据库和用户,运行 mariadb 命令,进入数据库命令行,然后键入下面命令
sudo mariadb
CREATE DATABASE ghost;

GRANT ALL ON ghost.* TO 'ghostuser'@'%' IDENTIFIED BY 'superstrongpassword';

4. 创建 Ghost docker 的安装目录

# 可以是任意目录
sudo mkdir -p /docker/ghost
  1. 创建 Ghost docker-compose 安装的 yml 文件
# 在安装目录下创建并打开编辑 docker-compose.yml 文件
sudo nano /docker/ghost/docker-compose.yml

在编辑器里把下面内容复制进去,自己修改端口号,域名和数据库信息

version: "3"
services:
  ghost:
    image: ghost:latest
    container_name: ghost
    restart: always
    ports:
      - "2368:2368" # 左边的端口号可以自己修改
    environment:
      url: https://blog.yourdomain.com
      database__client: mysql # 这里就用mysql,mariadb是mysql的分支
      database__connection__host: 172.17.0.1
      database__connection__user: ghostuser
      database__connection__password: superstrongpassword
      database__connection__database: ghost
    volumes:
      - ./content:/var/lib/ghost/content

完成后按 Ctrl+x (退出), 然后输入 y (保存),然后回车

  1. 安装 Ghost

在 /docker/ghost 目录下运行

sudo docker-compose up -d

安装完成,你可以用 IP 和端口号打开 Ghost 博客了。如果要用域名访问,还需要额外设置,以后会另发教程

http://your-server-ip:2368