docker hexo评论系统waline服务器及数据库搭建

image-20221012171211527

先吐槽一下waline官网教程,浪费了我3day时间去debug。

目前,官网推荐的:

  • vercel(服务器)
  • leancloud(数据库)NG

我目前使用的方法:docker服务器端 + sqlite数据库,下面分享下我的做法。

安装docker、docker compose环境123

  • 安装docker:

    • 国内:curl -sSL https://get.daocloud.io/docker | sh
    • 国外:curl -sSL https://get.docker.com/ | sh
  • 安装docker compose:

    • 国内:

      1
      2
      curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
      chmod +x /usr/local/bin/docker-compose
    • 国外:

      1
      2
      curl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      chmod +x /usr/local/bin/docker-compose
  • 检查是否安装成功:

    1
    2
    docker -v
    docker-compose -v

docker compose作用:

用来负责对Docker容器集群的快速编排,

由一组关联的应用容器组成的一个完整业务单元,在docker-compose.yml文件当中进行定义

  • 最小docker compse使用范例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # 创建目录
    mkdir hello
    cd hello

    # 新建docker-compose.yml文件
    vim docker-compose.yml

    # 写入内容(这里在vim当中编辑yml文件挺难受的,可以在idea当中编辑远程主机的文件)
    version: "3.0" # 指定compose的版本
    services: # 指定服务
    tomcat: # 单个服务
    image: tomcat:9.0.27-jdk8 # 服务镜像
    ports:
    - 8081:8080 # 暴露对应的端口

    # 保持文件内容后进行启动compose
    docker-compose up

    # 服务启动之后,可以直接进行访问8081端口
    http://远程主机ip/8081

    参考:https://blog.csdn.net/qq_44973159/article/details/121357388

安装waline服务器及数据库

step1:创建测试目录:

  • 执行如下命令:

    1
    2
    3
    cd /root
    mkdir composetest
    cd composetest

step2:拉取镜像:

  • docker pull lizheming/waline

step3:在 composetest 目录下创建docker-compose.yml文件,内容如下:

  • 写入如下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    version: '3'

    services:
    waline:
    container_name: waline
    image: lizheming/waline:latest
    restart: always
    ports:
    - 8360:8360
    volumes:
    - ${PWD}/data:/app/data
    environment:
    TZ: 'Asia/Shanghai'
    SQLITE_PATH: '/app/data'
    JWT_TOKEN: 'Your token'
    SITE_NAME: 'Your site name'
    SITE_URL: 'https://example.com'
    SECURE_DOMAINS: 'example.com'
    AUTHOR_EMAIL: 'mail@example.com'

step4:在 composetest 目录下创建 data 目录,下载 waline.sqlite 这个数据库文件:

  • 命令如下:

    1
    2
    3
    4
    cd /root/composetest
    mkdir data
    cd data
    wget https://raw.githubusercontent.com/walinejs/waline/main/assets/waline.sqlite

step5:使用 Compose 命令构建和运行

  • 命令如下:

    1
    2
    cd /root/composetest
    docker-compose up -d
  • 列出所有运行的容器:docker-compose ps

step6: 访问 ip:端口

  • image-20221012173410742

参考教程

  1. Waline评论服务docker自部署手册 + 无需备案域名配置

  2. Docker 记录 | Mark (009898.xyz)

  3. 多数据库服务支持 | Waline