本文不是教程只是作为技术文档存放,迁移项目以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 数据库进行操作。

  1. 进入容器:使用 docker exec -it 命令进入 MongoDB 容器的 shell 环境。

Bash

   docker exec -it mongo bash
  • mongo 是容器的名称。
  1. 切换到 admin 数据库:在 MongoDB shell 中,使用 use admin 命令切换到 admin 数据库。这是因为只有在 admin 数据库中才能修改 root 用户的密码。

Bash

   mongo
   > use admin
  1. 更新密码:使用 db.changeUserPassword() 命令修改 root 用户的密码。

JavaScript

   > db.changeUserPassword('myusername', '新密码')
  • myusername 是您的用户名,新密码 是您要设置的新密码。
  1. 退出:完成操作后,退出 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容器正常更改。