本文不是教程只是作为技术文档存放,迁移项目以fastgpt为测试。所以所有环境均以fastgpt环境为准
首先安装环境
docker
使用root用户执行
apt-get update
apt-get install ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.163.com/docker-ce/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
apt install [docker-compose](https://so.csdn.net/so/search?q=docker-compose&spm=1001.2101.3001.7020)使用root用户执行
apt-get update
apt-get install ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://mirrors.163.com/docker-ce/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
apt install [docker-compose](https://so.csdn.net/so/search?q=docker-compose&spm=1001.2101.3001.7020)
安装node.js以及pnpm (根据官方推荐版本)
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 20
# Verify the Node.js version:
node -v # Should print "v20.19.4".
nvm current # Should print "v20.19.4".
# Download and install pnpm:
corepack enable pnpm
# Verify pnpm version:
pnpm -v
# 将环境变量添加到全局
pnpm setup
#你会看到这样的提示
Add the following to your profile file (e.g., ~/.bashrc or ~/.zshrc):
export PNPM_HOME="/home/your_user/.local/share/pnpm"
export PATH="$PNPM_HOME:$PATH"
You may need to restart your shell for the changes to take effect.
#update一下
source ~/.bashrc
#验证时候安装成功
pnpm -v
#全局安装pm2
pnpm add -g pm2
#验证pm2版本
pm2 -v
docker容器迁移
首先找到docker容器存放的volume卷
首先将目标文件迁移到目标主机上 使用scp命令 sudo scp -r /path/local/file/ username@IP:/path/your/file/
注意复制的volume权限问题
在复制完容器卷后,建议将当初的dockerfile文件或者compose文件直接复制到目标主机 在修改好 volume配置后 可以直接运行容器了。
这一步注意修改docker配置文件一定要细心
核心思想在于之前迁移的volume实际上存储的是原主机的所有数据包括密码、认证密钥。,一旦涉及初始化脚本之类的必须更改脚本才能完全迁移,否则不可用。
去github拉取项目最新分支 进入project/app 复制一份环境文件 cp .env.template .env.local
修改.env.local文件 注释很清楚 按照修改去修改 url以及数据库信息一定要跟docker配置文件吻合。 进入到项目主文件夹
进入project/app/data
复制 data/config.json 文件,生成一个 data/config.local.json 配置文件
这个不用更改,使用默认文件即可
运行
pnpm install 安装依赖
调试模式 pm2 start pnpm --name fastgpt-app -- dev
构建
pnpm run build
pm2 start pnpm --name fastgpt -- start
生成PM2的开机自启脚本 pm2 startup
复制 pm2 startup 命令输出中的 sudo env PATH=$PATH:... 那一行命令
pm2 save
更改数据库容器密码
MongoDB 容器密码修改
MongoDB 的密码修改需要进入容器内部,并切换到 admin 数据库进行操作。
- 进入容器:使用
docker exec -it命令进入 MongoDB 容器的 shell 环境。
Bash
docker exec -it mongo bash
mongo是容器的名称。
- 切换到
admin数据库:在 MongoDB shell 中,使用use admin命令切换到admin数据库。这是因为只有在admin数据库中才能修改root用户的密码。
Bash
mongo
> use admin
- 更新密码:使用
db.changeUserPassword()命令修改root用户的密码。
JavaScript
> db.changeUserPassword('myusername', '新密码')
myusername是您的用户名,新密码是您要设置的新密码。
- 退出:完成操作后,退出 MongoDB shell 和容器。
JavaScript
> exit
Bash
exit
Redis 容器密码修改
1.先删除docker文件里面的--requirepass参数、以及healthycheck的密码参数 2.重启redis容器 3.在容器内部强行更改密码 sudo docker exec -it redis redis-cli
127.0.0.1:6379> CONFIG SET requirepass [password]
4.命令行窗口会显示ok 5.将--requirepass参数以及healthycheck的参数添加回去并填上正确的密码
postgreSQL容器正常更改。