本文发布于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
后,将下面代码复制到终端中:
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]