Skip to content

Commit af028c7

Browse files
ibulerfit2bot
andauthored
refactor: 重构 all in one 打包逻辑 (#244)
* perf: all in one * perf: stash * pref: 完成 allinone 重构 * pref: base finished * pref: mv readme position * docs: add docs * docs: add url * doc: add english readme * doc: add readme * perf: split volume --------- Co-authored-by: fit2bot <[email protected]>
1 parent 99a5ebe commit af028c7

32 files changed

+499
-1800
lines changed

.github/workflows/build.yml

-41
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,6 @@ on:
77
- v4.*
88

99
jobs:
10-
build:
11-
runs-on: ubuntu-latest
12-
strategy:
13-
matrix:
14-
component: [core, koko, lion, chen, web]
15-
steps:
16-
- uses: actions/checkout@v4
17-
- uses: docker/setup-qemu-action@v3
18-
- uses: docker/setup-buildx-action@v3
19-
- name: Get Version
20-
run: |
21-
echo "version=$(basename ${GITHUB_REF})" >> $GITHUB_ENV
22-
23-
- name: Login to Docker Hub
24-
uses: docker/login-action@v3
25-
with:
26-
username: ${{ secrets.DOCKERHUB_USERNAME }}
27-
password: ${{ secrets.DOCKER_HUB_TOKEN }}
28-
29-
- name: Login to GitHub Container Registry
30-
uses: docker/login-action@v3
31-
with:
32-
registry: ghcr.io
33-
username: ${{ github.repository_owner }}
34-
password: ${{ secrets.GITHUB_TOKEN }}
35-
36-
- name: Build and Push Image
37-
uses: docker/build-push-action@v5
38-
with:
39-
context: .
40-
file: ${{ matrix.component }}/Dockerfile
41-
platforms: linux/amd64,linux/arm64
42-
push: true
43-
tags: |
44-
${{ github.repository_owner }}/jms_${{ matrix.component }}:${{ env.version }}
45-
${{ github.repository_owner }}/jms_${{ matrix.component }}:latest
46-
ghcr.io/${{ github.repository_owner }}/jms_${{ matrix.component }}:${{ env.version }}
47-
ghcr.io/${{ github.repository_owner }}/jms_${{ matrix.component }}:latest
48-
cache-from: type=gha
49-
cache-to: type=gha,mode=max
50-
5110
allinone:
5211
needs: build
5312
runs-on: ubuntu-latest

README.md

+21-208
Original file line numberDiff line numberDiff line change
@@ -12,227 +12,40 @@
1212

1313
--------------------------
1414

15-
## 环境要求
16-
- MariaDB Server >= 10.6
17-
- Redis Server >= 6.0
1815

19-
## 快速部署
20-
```sh
21-
# 测试环境可以使用,生产环境推荐外置数据
22-
git clone --depth=1 https://github.com/jumpserver/Dockerfile.git
23-
cd Dockerfile
24-
cp config_example.conf .env
25-
docker compose -f docker-compose-network.yml -f docker-compose-redis.yml -f docker-compose-mariadb.yml -f docker-compose-init-db.yml up
26-
docker compose -f docker-compose-network.yml -f docker-compose-redis.yml -f docker-compose-mariadb.yml -f docker-compose.yml up -d
27-
28-
docker rm jms_init_db
29-
```
30-
31-
## 标准部署
32-
33-
> 请先自行创建 数据库 和 Redis, 版本要求参考上面环境要求说明
34-
35-
```sh
36-
# 自行部署 MySQL 可以参考 (https://docs.jumpserver.org/zh/master/install/setup_by_lb/#mysql)
37-
# mysql 创建用户并赋予权限, 请自行替换 nu4x599Wq7u0Bn8EABh3J91G 为自己的密码
38-
mysql -u root -p
39-
```
40-
41-
```mysql
42-
create database jumpserver default charset 'utf8';
43-
create user 'jumpserver'@'%' identified by 'nu4x599Wq7u0Bn8EABh3J91G';
44-
grant all on jumpserver.* to 'jumpserver'@'%';
45-
flush privileges;
46-
```
16+
## all-in-one 快速部署
17+
测试环境可以使用,生产环境推荐使用 标准部署
4718

4819
```sh
49-
# 自行部署 Redis 可以参考 (https://docs.jumpserver.org/zh/master/install/setup_by_lb/#redis)
20+
docker volume create jsdata &> /dev/null
21+
docker volume create pgdata &> /dev/null
22+
docker run --name jms_all \
23+
-e SECRET_KEY=PleaseChangeMe \
24+
-e BOOTSTRAP_TOKEN=PleaseChangeMe \
25+
-v jsdata:/opt/data \
26+
-v pgdata:/var/lib/postgresql \
27+
-p 2222:2222 \
28+
-p 80:80 jumpserver/jms_all
5029
```
5130

52-
```sh
53-
git clone --depth=1 https://github.com/jumpserver/Dockerfile.git
54-
cd Dockerfile
55-
cp config_example.conf .env
56-
vi .env
31+
**初始账号**
32+
```bash
33+
默认账号: admin
34+
默认密码: ChangeMe
5735
```
58-
```vim
59-
# 版本号可以自己根据项目的版本修改
60-
VERSION=v4.1.0
61-
62-
# 构建参数, 支持 amd64, arm64, ppc64le, s390x
63-
TARGETARCH=amd64
6436

65-
# Compose, Swarm 模式下修改 NETWORK_DRIVER=overlay
66-
COMPOSE_PROJECT_NAME=jms
67-
# COMPOSE_HTTP_TIMEOUT=3600
68-
# DOCKER_CLIENT_TIMEOUT=3600
69-
DOCKER_SUBNET=192.168.250.0/24
70-
NETWORK_DRIVER=overlay
37+
更多详见 allinone [README](allinone)
7138

72-
# 持久化存储
73-
VOLUME_DIR=/opt/jumpserver
7439

75-
# 时区
76-
TZ=Asia/Shanghai
77-
78-
# MySQL
79-
DB_HOST=mysql
80-
DB_PORT=3306
81-
DB_USER=root
82-
DB_PASSWORD=nu4x599Wq7u0Bn8EABh3J91G
83-
DB_NAME=jumpserver
84-
85-
# Redis
86-
REDIS_HOST=redis
87-
REDIS_PORT=6379
88-
REDIS_PASSWORD=8URXPL2x3HZMi7xoGTdk3Upj
89-
90-
# Core
91-
SECRET_KEY=B3f2w8P2PfxIAS7s4URrD9YmSbtqX4vXdPUL217kL9XPUOWrmy
92-
BOOTSTRAP_TOKEN=7Q11Vz6R2J6BLAdO
93-
LOG_LEVEL=ERROR
94-
DOMAINS=
95-
96-
# 组件通信
97-
CORE_HOST=http://core:8080
40+
## 标准部署
9841

99-
# Lion
100-
GUACD_LOG_LEVEL=error
101-
GUA_HOST=guacd
102-
GUA_PORT=4822
42+
请使用 jumpserver installer 部署
10343

104-
# Web
105-
HTTP_PORT=80
106-
SSH_PORT=2222
44+
https://docs.jumpserver.org/zh/v3/quick_start/
10745

108-
##
109-
# SECRET_KEY 保护签名数据的密匙, 首次安装请一定要修改并牢记, 后续升级和迁移不可更改, 否则将导致加密的数据不可解密。
110-
# BOOTSTRAP_TOKEN 为组件认证使用的密钥, 仅组件注册时使用。组件指 koko, lion, magnus, kael, chen ...
111-
```
112-
```sh
113-
docker compose -f docker-compose-network.yml -f docker-compose-init-db.yml up
114-
docker compose -f docker-compose-network.yml -f docker-compose.yml up -d
115-
116-
docker rm jms_init_db
117-
```
11846

11947
## 集群部署
12048

121-
- Docker Swarm 集群环境
122-
- 自行创建 MySQL 和 Redis, 参考上面环境要求说明
123-
- 自行创建持久化共享存储目录 ( 例如 NFS, GlusterFS, Ceph 等 )
124-
125-
```sh
126-
# 在所有 Docker Swarm Worker 节点挂载 NFS 或者其他共享存储, 例如 /data/jumpserver
127-
# 注意: 需要手动创建所有需要挂载的持久化目录, Docker Swarm 模式不会自动创建所需的目录
128-
mkdir -p /data/jumpserver/core/data
129-
mkdir -p /data/jumpserver/chen/data
130-
mkdir -p /data/jumpserver/lion/data
131-
mkdir -p /data/jumpserver/koko/data
132-
mkdir -p /data/jumpserver/lion/data
133-
mkdir -p /data/jumpserver/web/data/logs
134-
mkdir -p /data/jumpserver/web/download
135-
```
136-
```sh
137-
git clone --depth=1 https://github.com/jumpserver/Dockerfile.git
138-
cd Dockerfile
139-
cp config_example.conf .env
140-
vi .env
141-
```
142-
```vim
143-
# 版本号可以自己根据项目的版本修改
144-
VERSION=v4.1.0
145-
146-
# 构建参数, 支持 amd64, arm64, ppc64le, s390x
147-
TARGETARCH=amd64
148-
149-
# Compose, Swarm 模式下修改 NETWORK_DRIVER=overlay
150-
COMPOSE_PROJECT_NAME=jms
151-
# COMPOSE_HTTP_TIMEOUT=3600
152-
# DOCKER_CLIENT_TIMEOUT=3600
153-
DOCKER_SUBNET=192.168.250.0/24
154-
NETWORK_DRIVER=overlay
155-
156-
# 持久化存储
157-
VOLUME_DIR=/opt/jumpserver
158-
159-
# 时区
160-
TZ=Asia/Shanghai
161-
162-
# MySQL
163-
DB_HOST=mysql
164-
DB_PORT=3306
165-
DB_USER=root
166-
DB_PASSWORD=nu4x599Wq7u0Bn8EABh3J91G
167-
DB_NAME=jumpserver
168-
169-
# Redis
170-
REDIS_HOST=redis
171-
REDIS_PORT=6379
172-
REDIS_PASSWORD=8URXPL2x3HZMi7xoGTdk3Upj
173-
174-
# Core
175-
SECRET_KEY=B3f2w8P2PfxIAS7s4URrD9YmSbtqX4vXdPUL217kL9XPUOWrmy
176-
BOOTSTRAP_TOKEN=7Q11Vz6R2J6BLAdO
177-
LOG_LEVEL=ERROR
178-
DOMAINS=
179-
180-
# 组件通信
181-
CORE_HOST=http://core:8080
182-
183-
# Lion
184-
GUACD_LOG_LEVEL=error
185-
GUA_HOST=guacd
186-
GUA_PORT=4822
187-
188-
# Web
189-
HTTP_PORT=80
190-
SSH_PORT=2222
191-
192-
##
193-
# SECRET_KEY 保护签名数据的密匙, 首次安装请一定要修改并牢记, 后续升级和迁移不可更改, 否则将导致加密的数据不可解密。
194-
# BOOTSTRAP_TOKEN 为组件认证使用的密钥, 仅组件注册时使用。组件指 koko, lion, magnus, kael, chen ...
195-
```
196-
```sh
197-
# 生成 docker stack 部署所需文件
198-
docker compose -f docker-compose-network.yml -f docker-compose-init-db.yml config | sed '/published:/ s/"//g' | sed "/name:/d" > docker-stack-init-db.yml
199-
docker compose -f docker-compose-network.yml -f docker-compose.yml config | sed '/published:/ s/"//g' | sed "/name:/d" > docker-stack.yml
200-
```
201-
```sh
202-
# 初始化数据库
203-
docker stack deploy -c docker-stack-init-db.yml jumpserver
204-
docker service ls
205-
docker service ps jumpserver_init_db
206-
207-
# 根据查到的 Worker 节点, 到对应节点查看初始化日志
208-
```
209-
```sh
210-
# 启动 JumpServer 应用
211-
docker stack deploy -c docker-stack.yml jumpserver
212-
docker service ls
213-
```
214-
```sh
215-
# 扩容缩容
216-
docker service update --replicas=2 jumpserver_koko # 扩容 koko 到 2 个副本
217-
docker service update --replicas=4 jumpserver_lion # 扩容 lion 到 2 个副本
218-
# ...
219-
```
220-
221-
## Build
222-
```sh
223-
# 如果希望手动构建镜像, 可以使用下面的命令
224-
cd Dockerfile
225-
cp config_example.conf .env
226-
vi .env
227-
```
228-
```vim
229-
# 构建参数, 支持 amd64/arm64
230-
TARGETARCH=amd64
231-
```
232-
```bash
233-
docker compose -f docker-compose-build.yml up
234-
```
49+
JumpServer 支持 swarm 方式部署,但目前不太推荐用于生产环境,除非你对此熟悉 .
23550

236-
## 初始账号
237-
- 默认账号: `admin`
238-
- 默认密码: `ChangeMe`
51+
详见 swarm [README](swarm)

0 commit comments

Comments
 (0)