JumpServer all-in-one Dockerfile,该项目是 JumpServer all-in-one 部署方式的 Docker 镜像生成代码。
环境迁移和更新升级请检查 SECRET_KEY 是否与之前设置一致, 不能随机生成, 否则数据库所有加密的字段均无法解密。
注意: all-in-one 部署方式不支持 Client 相关功能, 仅支持在 纯 B/S 架构 Web 端使用。
docker volume create jsdata
docker volume create pgdata
docker run --name jms_all \
-e SECRET_KEY=PleaseChangeMe \
-e BOOTSTRAP_TOKEN=PleaseChangeMe \
-v jsdata:/opt/data \
-v pgdata:/var/lib/postgresql \
-p 2222:2222 \
-p 80:80 jumpserver/jms_all
使用外置 MySQL 数据库和 Redis:
- 外置数据库要求 MariaDB 版本大于等于 10.6 或者 PosgresSQL 13;
- 外置 Redis 要求 Redis 版本大于等于 6.2。
# 自行部署 MySQL 可以参考 (https://docs.jumpserver.org/zh/master/install/setup_by_lb/#mysql)
# mysql 创建用户并赋予权限, 请自行替换 nu4x599Wq7u0Bn8EABh3J91G 为自己的密码
mysql -u root -p
create database jumpserver default charset 'utf8';
create user 'jumpserver'@'%' identified by 'nu4x599Wq7u0Bn8EABh3J91G';
grant all on jumpserver.* to 'jumpserver'@'%';
flush privileges;
# 自行部署 Redis 可以参考 (https://docs.jumpserver.org/zh/master/install/setup_by_lb/#redis)
设置环境变量:
- SECRET_KEY = xxxxx # 自行生成随机的字符串, 不要包含特殊字符串, 长度推荐大于等于 50
- BOOTSTRAP_TOKEN = xxxxx # 自行生成随机的字符串, 不要包含特殊字符串, 长度推荐大于等于 24
- LOG_LEVEL = ERROR # 日志等级, 测试环境推荐设置为 DEBUG
- DB_ENGINE = mysql # 使用 MySQL 数据库
- DB_HOST = mysql_host # MySQL 数据库 IP 地址
- DB_PORT = 3306 # MySQL 数据库 端口
- DB_USER = xxx # MySQL 数据库认证用户
- DB_PASSWORD = xxxx # MySQL 数据库认证密码
- DB_NAME = jumpserver # JumpServer 使用的数据库名称
- REDIS_HOST = redis_host # 使用 Redis 缓存
- REDIS_PORT = 6379 # Redis 服务器 IP 地址
- REDIS_PASSWORD = xxxx # Redis 认证密码
- VOLUME /opt/jumpserver/data # Core 持久化目录, 存储录像日志
- VOLUME /opt/koko/data # Koko 持久化目录
- VOLUME /opt/lion/data # Lion 持久化目录
- VOLUME /opt/chen/data # Chen 持久化目录
- VOLUME /var/log/nginx # Nginx 日志持久化目录
- VOLUME /opt/download # APPLETS 文件持久化目录 (应用发布机所需文件)
注意:自己上面设置的这些信息一定要记录下来,升级需要重新输入使用。
启动 JumpServer
docker volume create jsdata
docker run --name jms_all -d \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=xxxxxx \
-e BOOTSTRAP_TOKEN=xxxxxx \
-e LOG_LEVEL=INFO \
-e DB_HOST=192.168.x.x \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD=weakPassword \
-e DB_NAME=jumpserver \
-e REDIS_HOST=192.168.x.x \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=weakPassword \
--privileged=true \
-v jsdata:/opt/data \
jumpserver/jms_all:v4.1.0
升级
# 查询定义的 JumpServer 配置
docker exec -it jms_all env
# 停止 JumpServer
docker stop jms_all
# 备份数据库, 下面用到的 DB-xxx 从上面的 docker exec -it jms_all env 结果获取
mysqldump -h$DB_HOST -p$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME > /opt/jumpserver-<版本号>.sql
# 例: mysqldump -h192.168.100.11 -p3306 -ujumpserver -pnu4x599Wq7u0Bn8EABh3J91G jumpserver > /opt/jumpserver-v2.12.0.sql
# 拉取新版本镜像
docker pull jumpserver/jms_all:v4.1.0
# 删掉旧版本容器
docker rm jms_all
# 重新启动新版本
初始账号
默认账号: admin
默认密码: ChangeMe