使用 Docker Compose 构建 Misskey项目

目录

前提工作

拉取docker库

复制配置文件

compose.yml

default.yml

docker.env

项目构建和镜像资源获取

注意事项

数据库初始化

运行Misskey

项目Bug以及修复策略(持续更新ing)

头像图片上传失败

无法上传PDF等主流文件类型

频道和页面的热门展示功能(待解决)


建议直接在服务器上部署,不用在自己笔记本电脑本地部署后再去尝试,博主在这里踩了很多坑,下面介绍使用Docker Compose在服务器上构建MissKey项目的步骤以及注意事项!(ps:下面的指令,需一行一行执行,方便排错)

Misskey官网

一个很好的参考帖子

前提工作

一台安装了 Docker 和 Docker Compose的服务器

一个域名**(选定之后一定不要进行更换)**,并且该域名配置了DNS解析,建立了域名和服务器IP地址的映射

拉取docker库

bash 复制代码
git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master

复制配置文件

cpA B:将A位置的文件复制一份到B位置,现在我们复制了三份配置文件,下面对文件的解释

bash 复制代码
cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./compose_example.yml ./compose.yml

compose.yml

文件中的3000:3000,前者表示web端口,如果3000被占用了,可以更改其他的空闲端口号,后者为Misskey项目在docker容器中监听的端口,可以不用修改。特别值得注意的是,更改web端口号只需要更改这一个文件即可

default.yml

这里用自己准备的域名去更换example.tld/

在这份文件当中,你也可以进行数据库的配置,包括数据库名称、用户名和密码等

docker.env

如果你在default.yml中修改了数据库的名称、用户名和密码,在该份文件中,你也应该进行修改!建议不到万不得已,不去修改数据库的配置,我们秉承着多一事不如少一事的原则!

项目构建和镜像资源获取

bash 复制代码
sudo docker compose build

使用这个指令之后,会进行项目的构建和所需镜像资源的下载,是一个边构建项目边拉取所需镜像的过程,第一次总体大概耗时10分钟上下,这取决于你的网速和服务器等多方面因素制约,如果出现了以下的图片,则表明你已经构建完成!(图片来源于开篇提及的参考帖子)

注意事项

1.如果在构建的过程中,进度条一直没有往下走,卡住了,你可以终止指令的执行,并重新执行sudo docker compose build指令,它不会重新从头开始构建,而是快速到达卡住的部分继续往下执行!这是由于在项目构建的过程中是存在着类似于缓存的机制!

2.如果在项目构建的过程中出现了,由于镜像资源拉取不下了,而终止项目构建进程的情况!可以使用docker命令去单独拉取哪个镜像资源,并重新构建项目,如此往复!直到项目构建完毕!

bash 复制代码
sudo docker pull node:18-alpine #以Node.js的18-alpine版本为例
sudo docker images #查看镜像是否拉取成功
sudo docker compose build  #重新构建项目

数据库初始化

bash 复制代码
sudo docker compose run --rm web pnpm run init

数据库的初始化时间非常短,如果出现了上面这张图片(来源于开篇提及的参考帖子),则说明你已经数据库初始化成功了!

**特别提醒:**数据库初始化指令只能执行一次,如果你在使用了一段时间Misskey项目之后,重新执行了这条指令,可能有数据库重置的风险!

运行Misskey

bash 复制代码
sudo docker compose up -d

项目成功运行之后就可以通过https://域名:端口号的形式,启动Misskey项目!在第一次使用Misskey项目的时候,需要进行初始化!这你可以根据自己的需求进行配置!

项目当中有许多可玩性的东西等你发掘!

项目Bug以及修复策略(持续更新ing)

如果你修改了本地代码,想使其在线上生效!需要执行以下步骤!

bash 复制代码
sudo docker compose down #停止容器服务
sudo docker compose build #重新构建项目,这因为不是第一次构建,所以会快很多
sudo docker compose up -d #启动容器服务

头像图片上传失败

产生原因:项目没有对文件的读写权限

总体思路:停止容器服务➙修改权限➙重启容器服务

解决方案如下:

无法上传PDF等主流文件类型

产生原因:项目从代码层面对文件的上传类型进行了限制

解决方案:停止容器服务➙使用大模型对文件类型数组进行添加➙重新构建项目➙重启容器服务

我给大家打个样,添加了一个PDF文件类型~

停止容器服务➙重新构建项目➙重启容器服务

bash 复制代码
sudo docker compose down 
sudo docker compose build 
sudo docker compose up -d 

频道和页面的热门展示功能(待解决)

问题描述:当用户A发布频道之后,必须里面有帖子才能被其他用户所看见;当用户A发布页面之后,必须被至少一个其他用户点赞之后,才能够在页面的热门展示!

相关推荐
梦梦代码精2 小时前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
_itgo3 小时前
意图识别落地方案
运维·docker·容器
mengge.cloud4 小时前
0909华为云计算类综合服务小白实验教程
linux·运维·服务器·网络·华为云·云计算
QYR-分析6 小时前
蓝海赛道高速扩容!全球小型观察ROV市场格局、细分场景与发展趋势分析
大数据·运维·云计算
陈皮糖..6 小时前
从零搭建一个简易 AI 运维问答机器人(RAG + LangChain + Streamlit)
运维·人工智能·ai·langchain·机器人
制造业的搬运工7 小时前
AI服务器背板与传统背板差异:三大设计升级解析
运维·服务器·人工智能·科技·制造·pcb工艺
顶点多余7 小时前
仿muduo库实现高并发服务器项目
运维·服务器
脚踏实地,坚持不懈!7 小时前
Linux 6.18.7 内存分配与回收 —— 代码梳理
linux·运维·网络
2601_962300478 小时前
python在运维上可以干什么,请举几个具体的例子
运维·python·系统管理·网络监控·自动化脚本
Android系统攻城狮8 小时前
Linux Gstreamer深度解析之gst_audio_format_build_integer调用流程与实战(十二)
linux·运维·服务器·音视频·车载音视频·gstreamer进阶