使用 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发布页面之后,必须被至少一个其他用户点赞之后,才能够在页面的热门展示!

相关推荐
java_logo16 分钟前
宝塔 Linux 面板 Docker 容器化部署指南
linux·运维·docker·宝塔·docker部署宝塔·宝塔部署教程·docker部署baota
云和数据.ChenGuang23 分钟前
批量给100台服务器装系统,还要完成后续的配置和软件部署
运维·服务器·开发语言·mysql
用户35218024547523 分钟前
🚀 Milvus 实战部署全记录
数据库·docker·ai编程
sunon_33 分钟前
解决linux系统PDF中文乱码问题
linux·运维·pdf
令狐囱37 分钟前
宝塔docker 运行 go-zero-looklook项目
docker·容器·golang
BJ_bafangonline37 分钟前
Xmanager怎么显示远程linux程序的图像?
linux·运维·服务器
yBmZlQzJ38 分钟前
内网穿透 + 域名解析:到底解决了什么核心问题?
运维·经验分享·网络协议·docker·容器
小挪号底迪滴39 分钟前
Docker容器化实践:从开发到生产的完整流程
运维·docker·容器
gordon~91 小时前
Docker常用命令
运维·docker·容器
珠海西格电力1 小时前
零碳园区应急能源基础架构规划:备用电源与清洁能源联动配置
大数据·运维·人工智能·物联网·能源