跳转至

其他方式升级说明

升级及迁移请保持 SECRET_KEY 与旧版本一致, 否则会导致数据库加密数据无法解密

极速安装升级

cd /opt/setuptools
git pull
./jmsctl.sh upgrade

可以使用 ./jmsctl.sh -h 查看帮助

docker 升级

  • 请一定要先做好备份
  • 如果已经做了容器持久化, 直接更新镜像然后挂载 /var/lib/mysql 和 /opt/jumpserver/data 目录启动即可

docker stop jms_all
docker rm jms_all
docker run --name jms_all -d \
  -v /opt/jumpserver/data:/opt/jumpserver/data \
  -v /opt/jumpserver/mysql:/var/lib/mysql \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=xxxxxx \
  -e BOOTSTRAP_TOKEN=xxx \
  -e DB_PASSWORD=xxxxxx \
  jumpserver/jms_all:v2.4.0

  • 如果没有做容器持久化, 需要先将文件拷出
mkdir /opt/jumpserver
docker cp jms_all:/opt/jumpserver/data /opt/jumpserver/data
docker cp jms_all:/var/lib/mysql /opt/jumpserver/mysql
chown -R 27:27 /opt/jumpserver/mysql

MySQL 的用户 id 是 27,未改权限的话可能会导致无法启动 Mariadb Server

  • 然后挂载到新版本里面,注意 SECRET_KEY 要和旧版本一致(否则将导致加密数据无法解密)

docker stop jms_all
docker rm jms_all
docker run --name jms_all -d \
  -v /opt/jumpserver/data:/opt/jumpserver/data \
  -v /opt/jumpserver/mysql:/var/lib/mysql \
  -p 80:80 \
  -p 2222:2222 \
  -e SECRET_KEY=xxxxxx \
  -e BOOTSTRAP_TOKEN=xxx \
  -e DB_PASSWORD=xxxxxx \
  jumpserver/jms_all:v2.4.0

  • 如果数据库已经外置, 则只需要挂载 jumpserver/data 即可
docker run --name jms_all -d \  
  -v /opt/jumpserver/data:/opt/jumpserver/data \  
  -p 80:80 \  
  -p 2222:2222 \  
  -e SECRET_KEY=xxxxxx \  
  -e BOOTSTRAP_TOKEN=xxx \  
  -e DB_HOST=192.168.x.x \  
  -e DB_PORT=3306 \  
  -e DB_USER=root \  
  -e DB_PASSWORD=xxx \  
  -e DB_NAME=jumpserver \  
  jumpserver/jms_all:v2.4.0

docker-compose 升级

  • 容器默认已经做好了持久化

docker volume ls
cd /opt/Dockerfile
docker-compose down
git pull
cat docker-compose.yml

注意, 新版本更改了挂载目录, 请自行完成替换或者还原

vi .env
Version=v2.4.0  # 修改你要升级的版本号为最新版本即可
...
docker-compose up -d