forked from j3ers3/Hello-Java-Sec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy.sh
executable file
·40 lines (31 loc) · 1.75 KB
/
deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/bin/bash
#以一种傻瓜交互的形式形式进行原包的Maven打包并可一次成型生成Jar包-完成插桩-封装成完整Docker镜像并自动运行上线。
stty erase ^H
# 获取当前的年月日时
current_datetime=$(date '+%Y%m%d%H')
# 交互式输入参数,如果用户不输入则使用默认值
read -p "请输入IAST代理程序的IP地址(默认为172.20.20.11): " iast_ip
iast_ip=${iast_ip:-172.20.20.11}
iast_url="http://$iast_ip:81/api/agent/api/iast/download?version=MQ=="
read -p "请输入Maven项目所在目录(默认为/root/Hello-Java-Sec): " project_directory
project_directory=${project_directory:-/root/Hello-Java-Sec}
# 交互式输入版本字段,如果用户不输入则使用默认的年月日时格式
read -p "请输入Maven项目构建完成后的镜像名称(默认为hellojavasec:v$current_datetime): " image_name
image_name=${image_name:-hellojavasec:v$current_datetime}
read -p "请输入启用的容器名称(默认为hellojavasec_iast): " container_name
container_name=${container_name:-hellojavasec_iast}
read -p "请输入对外接口的端口号(默认为8888): " external_port
external_port=${external_port:-8888}
# 将对外接口的端口号添加到容器名称的最后作为最终的容器名称
final_container_name="${container_name}_${external_port}"
# 下载 IAST 代理程序
curl -o iast_agent.jar "$iast_url"
# 在 Docker 中构建 Maven 项目并运行
docker run -it --rm \
--name MavenProject \
-v "$project_directory":/root/Hello-Java-Sec \
-w /root/Hello-Java-Sec \
adoptopenjdk/maven-openjdk8:latest \
mvn clean package -U -DskipTests \
&& docker build -t "$image_name" . \
&& docker run -itd --name "$final_container_name" -p "$external_port":8888 "$image_name"