前排提示,commento太久远了,不建议使用,我早就改成了Waline,此文仅作纪念
本文依据雨云-新一代服务提供商进行操作,雨云用着不错,而且可以先试用体验
官方文档:Self-hosting · Commento
通过docker-compose创建
方式一、commento和pgsql一起创建
这种方式适合没有创建过pgsql容器的用户
version: "3"services:server:image: registry.gitlab.com/commento/commentoports:- 8080:8080environment:COMMENTO_ORIGIN: localhost:8080 #根据实际情况填写COMMENTO_PORT: 8080#postgres:postgres分别是用户名和密码,要与下面的POSTGRES_USER和POSTGRES_PASSWORD一致COMMENTO_POSTGRES: postgres://postgres:postgres@db:5432/commento?sslmode=disable depends_on:- dbnetworks:- db_networkdb:image: postgres#ports: 这个官方上的文档是没加的,我也没试行不行,我建议是加上,不然没法用navicate之类的工具连接数据库# - 5432:5432environment:POSTGRES_DB: commentoPOSTGRES_USER: postgres #根据实际情况填写POSTGRES_PASSWORD: postgres #根据实际情况填写networks:- db_networkvolumes:- postgres_data_volume:/var/lib/postgresql/datanetworks:db_network:volumes:postgres_data_volume:
- but,会报错,显示/var/lib/postgresql/data下有数据,需要初始化,但是这时候pgsql容器是无法运行的,无法进入容器内部对其进行初始化操作,反正我是不知道其他方法怎么做,我是直接改为其他的目录,比如将/data删掉(笑),就可以使用了
- 这种方式最好是设置ports,不然之后想查数据库只能用命令行来查了,设置ports后连接navicat就很方便了
运行
执行docker-compose up -d
即可
默认生成的commento服务容器名为hexo-commento-server-1
和hexo-commento-postgresql-1
,可自行使用docker rename old_container_name new_container_name
修改容器名称
方式二、只创建commento容器
此方式适合之前已经创建过pgsql容器的用户,切记:pgsql镜像需是9.6版本
version: '3'services:server:image: registry.gitlab.com/commento/commentoports:- 8080:8080environment:COMMENTO_ORIGIN: 数据库地址:8080COMMENTO_PORT: 8080COMMENTO_POSTGRES: postgres://pgsql_username:pgql_password@your_IP:5432/数据库名称?sslmode=disablenetworks:- my_custom_network #此网络为创建pgsql容器时定义的网络,若当时没定义,可看下文定义并连接networks:my_custom_network:driver: bridgevolumes:postgres_data_volume:
创建自定义网络(如果尚未创建):
docker network create --driver bridge my_custom_network
将容器连接到自定义网络:
docker network connect my_custom_network pgsql_container
查看容器的网络
docker inspect <container_id_or_name> --format='{{json .NetworkSettings.Networks}}'
运行
执行docker-compose up -d
即可
默认生成的commento服务容器名为hexo-commento-server-1
,可自己改名
docker rename hexo-commento-server-1 hexo-commento
postgresql问题
之前因为一直在使用MySQL,想尝试pgSQL,所以经过查找,发现Commento的评论系统对pgSQL的支持很友好,而且可以直接用Docker安装,所以选择了Commento
创建数据库若报错
ERROR: source database "template1" is being accessed by other users
解决:进入postgresql执行一行命令
root@2e45052415fc:/# pgsql -U postgres
postgres=# select pg_terminate_backend(pid) from pg_stat_activity where DATNAME = 'template1';
版本问题
commento的pq版本太低,只能连接9.6版本以下的pgsql,因为从10版本开始使用scram-sha-256身份认证。
若是有办法更新pq版本,那最好还是用最新的pgsql,我不懂go语言,而且是直接拉取的镜像,改不了,所以就将就着用了。