【docker】开源问答平台——Answer

2024-08-20 16:28:55 浏览数 (1)

本文发布于563天前,最后更新于6天前,其中的信息可能有所发展或是发生改变。如有疑问请联系邮箱:admin@yemengstar.com。

1.前言

Answer是一个开源的、类似于知乎一样的问答平台,界面简洁。第二个知乎芜湖~

Answer 官方网址:https://answer.dev/ Answer 官方 GitHub:https://github.com/answerdev/answer Answer 官方文档:https://answer.dev/docs/installation/

2.docker安装

2.1腾讯云

如果使用腾讯云轻量应用服务器docker镜像的话,可以省略这一步。

系统ubuntu20.04/ubuntu22.04

参考链接:【docker】在服务器上安装docker

推荐使用腾讯云的轻量应用服务器,能够一键部署docker,省时省力。

腾讯云直达

2.2其他云

系统为Ubuntu22.04

代码语言:javascript复制
snap install docker

2.开始部署

2.1官方一行

代码语言:javascript复制
curl -fsSL https://raw.githubusercontent.com/answerdev/answer/main/docker-compose.yaml | docker compose -p answer -f - up -d

安装完成后通过ip:9080访问进入设置!

2.2常规方法

创建安装目录:

代码语言:javascript复制
mkdir -p /root/data/docker_data/answer
cd /root/data/docker_data/answer

以docker形式安装:

代码语言:javascript复制
vim docker-compose.yml

英文输入法下,按 i后,将下面代码复制到终端中:

代码语言:javascript复制
version: "3"
services:
  answer:
    image: answerdev/answer
    ports:
      - '9008:80'            # 冒号左边可以改成自己服务器未被占用的端口
    restart: on-failure
    volumes:
      - ./answer-data:/data  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 answer-data 文件夹中
      
  db:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: answer   # 数据库用户root的密码,建议自行修改一个
      MYSQL_USER: answer         
      MYSQL_PASSWORD: answer   # 数据库用户answer的密码,建议自行修改一个
      MYSQL_DATABASE: answer 
    volumes:
      - ./mariadb:/var/lib/mysql  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 mariadb 文件夹中
    restart: on-failure

按一下 esc,然后 :wq 保存退出。

最后,

代码语言:javascript复制
cd /root/data/docker_data/answer    # 来到 dockercompose 文件所在的文件夹下
docker-compose up -d 

在腾讯云轻量服务器安全组处放行9008端口。

理论上我们就可以输入 http://ip:9008 访问安装了。

4.反向代理

但是,为了小伙伴们能够简单地记忆网站地址,以便于下次更加快捷的进入Answer平台,夜梦建议大家绑定域名并进行反向代理。

参考文章:【docker】反向代理神器——Nginx Proxy Manager

参考文章:【docker】Nginx Proxy Manager的使用

5.进入网站设置

5.1语言选择

自行选择

5.2设置数据库

推荐使用SQLite,如果使用MySQL 或者是 PostgreSQL,的话要现在服务器中安装好并且完成设置。

代码语言:javascript复制
# Database Engine
SQlite
# Database File
/data/answer.db

5.3创建配置文件

NEXT

5.4完善网站信息

自行输入

6.更新与卸载

6.1更新

代码语言:javascript复制
cd /root/data/docker_data/answer

docker-compose down 

cp -r /root/data/docker_data/answer/root/data/docker_data/hexo.archive  # 万事先备份,以防万一,其实这边没必要,因为我们没有映射到本地文件夹

docker-compose pull

docker-compose up -d    # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。

docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像

提示:

代码语言:javascript复制
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] 

输入y

6.2卸载

代码语言:javascript复制
cd /root/data/docker_data/answer

docker-compose down

cd ..

rm -rf /root/data/docker_data/answer  # 完全删除映射到本地的数据

[1][2]

0 人点赞