Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
excel-export-service
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
export-service
excel-export-service
Commits
f30ace05
提交
f30ace05
authored
9月 28, 2025
作者:
lixiaojuan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
打包
上级
96886500
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
237 行增加
和
5 行删除
+237
-5
Dockerfile
build/Dockerfile
+39
-0
build.sh
build/build.sh
+78
-0
env.prod
build/env/env.prod
+33
-0
env.test
build/env/env.test
+2
-2
run.sh
build/run.sh
+82
-0
pom.xml
pom.xml
+2
-2
ExcelExportService.java
...m/zzsn/excelexportservice/service/ExcelExportService.java
+0
-0
application.yml
src/main/resources/application.yml
+1
-1
没有找到文件。
build/Dockerfile
0 → 100644
浏览文件 @
f30ace05
# 构建阶段
FROM
swr.cn-southwest-2.myhuaweicloud.com/wd/maven:3.8.5-openjdk-17 AS builder
USER
root
WORKDIR
/workspace
COPY
. .
RUN
mvn clean install
-DskipTests
# 运行时阶段:直接用精简版 openjdk 镜像
FROM
swr.cn-southwest-2.myhuaweicloud.com/wd/openjdk:17-fontconfig
MAINTAINER
lixingyu
USER
root
WORKDIR
/workspace
# 复制 jar 包
COPY
--from=builder /workspace/target/*.jar /workspace/app.jar
# 环境变量
ARG
ENV_NAME
ARG
NACOS_SERVER
ARG
NACOS_NAMESPACE
ARG
NACOS_REGISTER_IP
ARG
PORT
ENV
APP_OPTS1="-Dspring.profiles.active=${ENV_NAME}"
ENV
APP_OPTS2="-Djasypt.encryptor.password=1@wdLkj90#chMsdzxA%2024"
ENV
APP_OPTS3="-Dfile.encoding=utf-8"
ENV
APP_OPTS4="-Duser.timezone=Asia/Shanghai"
# 无头模式避免 AWT 调用
ENV
APP_OPTS9="-Djava.awt.headless=true"
ENV
APP_OPTS5="-DNACOS_SERVER=${NACOS_SERVER}"
ENV
APP_OPTS6="-DNACOS_NAMESPACE=${NACOS_NAMESPACE}"
ENV
APP_OPTS7="-DNACOS_REGISTER_IP=${NACOS_REGISTER_IP}"
ENV
JVM_OPTS="-Xmx2024M -Xms256M"
EXPOSE
${PORT}
ENTRYPOINT
["sh","-c","java $APP_OPTS1 $APP_OPTS2 $APP_OPTS3 $APP_OPTS4 $APP_OPTS9 $APP_OPTS5 $APP_OPTS6 $APP_OPTS7 $JVM_OPTS -jar /workspace/app.jar"]
\ No newline at end of file
build/build.sh
0 → 100644
浏览文件 @
f30ace05
#!/bin/bash
# build.sh - 功能包括:镜像构建,推送镜像,处理none镜像。
# author: lixingyu
# 使用方法:
# $ ./build.sh <env_name> <build_timestamp>
# 参数:
# env_name:环境变量 build_timestamp:构建时间戳
set
-eu
# 获取脚本的绝对路径(包括文件名)
script_path
=
$(
readlink
-f
"
$0
"
)
# 获取脚本所在的目录的绝对路径
script_dir
=
$(
dirname
"
$script_path
"
)
# 函数定义
function
print_usage
{
# 打印使用说明
sed
-n
'2,7p'
"
$0
"
}
function
handle
{
local
env_name
=
$1
local
build_timestamp
=
$2
echo
"执行的环境变量:
${
env_name
}
"
echo
"执行的构建时间戳:
${
build_timestamp
}
"
if
[
!
-f
"
$script_dir
/env/env.
${
env_name
}
"
]
;
then
echo
"错误: 文件 'env.
${
env_name
}
' 不存在."
>
&2
exit
1
fi
.
$script_dir
/env/env.
${
env_name
}
local
username
=
"
${
repo_username
}
"
local
passwd
=
"
${
repo_passwd
}
"
local
name
=
"
${
svc_name
}
-
${
svc_env
}
"
local
version
=
${
version
}
-
${
build_timestamp
}
local
internal_ip
=
"
${
internal_ip
}
"
echo
"构建名称:
${
name
}
"
echo
"构建端口:
${
svc_port
}
"
echo
"部署节点:
${
internal_ip
}
"
echo
"构建版本:
${
version
}
"
echo
"推送仓库:
${
domain
}
/
${
namespace
}
"
echo
"完整镜像:
${
domain
}
/
${
namespace
}
/
${
name
}
:
${
version
}
"
echo
"---构建镜像---"
docker build
--build-arg
NACOS_REGISTER_IP
=
${
internal_ip
}
--build-arg
NACOS_SERVER
=
${
nacos_server
}
--build-arg
NACOS_NAMESPACE
=
${
nacos_namespace
}
\
--build-arg
ENV_NAME
=
${
svc_env
}
--build-arg
PORT
=
${
svc_port
}
-f
./build/Dockerfile
-t
${
domain
}
/
${
namespace
}
/
${
name
}
:
${
version
}
.
echo
"---推送镜像---"
docker login
-u
=
$username
-p
=
${
passwd
}
${
domain
}
docker push
${
domain
}
/
${
namespace
}
/
${
name
}
:
${
version
}
echo
"---清理none镜像---"
docker container prune
-f
docker image prune
-af
}
# 主程序入口点
function
main
{
if
[
"$#"
-ne
2
]
;
then
print_usage
echo
"错误: 需要提供两个个参数 <env_name> <build_timestamp>"
>
&2
exit
1
fi
local
env_name
=
$1
local
build_timestamp
=
$2
handle
"
${
env_name
}
"
"
${
build_timestamp
}
"
}
# 错误处理
trap
'echo 发生了错误,脚本中断.'
ERR
# 调用主函数
main
"
$@
"
build/env/env.prod
0 → 100644
浏览文件 @
f30ace05
# 镜像仓库
## 版本 T1.0.0: T为测试版,R为稳定版
version="T1.0.0" # 可自定义
## 镜像仓库地址
domain="swr.cn-southwest-2.myhuaweicloud.com"
## 镜像分组,按部门区分
namespace="wd"
# 服务配置
## 部署节点的内网IP
internal_ip=server-1-95-67-224.ciglobal.cn
## 数据挂载根目录
root_dir="/zzsn"
## 需根据日志配置填写,比如:logback-spring.xml
svc_logs="/workspace/logs"
## 环境变量 test or prod
svc_env="prod"
## 服务名
svc_name="excel-export-service"
## 服务端口
svc_port="9120"
# nacos配置
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
## nacos服务地址, 配置文件使用 NACOS_SERVER
nacos_server="server-1-95-77-159.ciglobal.cn:8848"
## nacos命名空间, 配置文件使用 NACOS_NAMESPACE
nacos_namespace="smartProd"
# 资源限制
## cpu
limit_cpu=1.0
limit_mem=2g
build/env/env.test
浏览文件 @
f30ace05
...
@@ -8,7 +8,7 @@ namespace="wd"
...
@@ -8,7 +8,7 @@ namespace="wd"
# 服务配置
# 服务配置
## 部署节点的内网IP
## 部署节点的内网IP
internal_ip
=
server
-
1
-
95
-
14
-
24
.
ciglobal
.
cn
internal_ip
=
server
-
1
-
95
-
77
-
159
.
ciglobal
.
cn
## 数据挂载根目录
## 数据挂载根目录
root_dir
=
"/zzsn"
root_dir
=
"/zzsn"
## 需根据日志配置填写,比如:logback-spring.xml
## 需根据日志配置填写,比如:logback-spring.xml
...
@@ -18,7 +18,7 @@ svc_env="test"
...
@@ -18,7 +18,7 @@ svc_env="test"
## 服务名
## 服务名
svc_name
=
"excel-export-service"
svc_name
=
"excel-export-service"
## 服务端口
## 服务端口
svc_port
=
"
8089
"
svc_port
=
"
9120
"
# nacos配置
# nacos配置
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
...
...
build/run.sh
0 → 100644
浏览文件 @
f30ace05
#!/bin/bash
# run.sh - 功能包括:运行容器,处理none镜像。
# author: lixingyu
# 使用方法:
# $ ./run.sh <env_name> <build_timestamp>
# 参数:
# env_name:环境变量 build_timestamp:构建时间戳
set
-eu
# 获取脚本的绝对路径(包括文件名)
script_path
=
$(
readlink
-f
"
$0
"
)
# 获取脚本所在的目录的绝对路径
script_dir
=
$(
dirname
"
$script_path
"
)
# 函数定义
function
print_usage
{
# 打印使用说明
sed
-n
'2,7p'
"
$0
"
}
function
handle
{
local
env_name
=
$1
local
build_timestamp
=
$2
echo
"执行的环境变量:
${
env_name
}
"
echo
"执行的构建时间戳:
${
build_timestamp
}
"
if
[
!
-f
"
$script_dir
/env/env.
${
env_name
}
"
]
;
then
echo
"错误: 文件 'env.
${
env_name
}
' 不存在."
>
&2
exit
1
fi
.
$script_dir
/env/env.
${
env_name
}
local
dir
=
"
${
root_dir
}
/
${
svc_name
}
/
${
svc_env
}
"
local
name
=
"
${
svc_name
}
-
${
svc_env
}
"
local
version
=
${
version
}
-
${
build_timestamp
}
local
internal_ip
=
"
${
internal_ip
}
"
echo
"---运行容器:
${
name
}
:
${
version
}
---"
# 构建 JSON 数据
json_data
=
"{
\
\"
container_name
\"
:
\"
$name
\"
,
\
\"
image_version
\"
:
\"
$domain
/
$namespace
/
$name
:
$version
\"
,
\
\"
ports
\"
: [
\"
$svc_port
:
$svc_port
\"
],
\
\"
mount_infos
\"
: [
\"
/etc/localtime:/etc/localtime:ro
\"
,
\"
$dir
/logs:
$svc_logs
\"
],
\
\"
cpu_count
\"
:
$limit_cpu
,
\
\"
memory_limit
\"
:
\"
$limit_mem
\"
,
\
\"
ulimit
\"
:
\"
nofile=65535:65535
\"
\
}"
# 执行 curl 请求,并将响应结果存储在 response 变量中
response
=
$(
curl
-s
-X
POST
-H
"Content-Type: application/json"
-H
"X-API-Key: uOyKfp20pdM3MFhr3KAQBoe1UHCaZLUeeLephB57MPvGXTY05Eis5eaxta6fEtpa"
-d
"
$json_data
"
"http://
$internal_ip
:10080/start-container"
)
echo
"响应结果:
${
response
}
"
# 检查响应中是否包含 "succeed"
if
echo
"
$response
"
|
grep
-q
"successfully"
;
then
echo
"部署成功"
exit
0
else
echo
"部署失败"
exit
1
fi
}
# 主程序入口点
function
main
{
if
[
"$#"
-ne
2
]
;
then
print_usage
echo
"错误: 需要提供两个个参数 <env_name> <build_timestamp>"
>
&2
exit
1
fi
local
env_name
=
$1
local
build_timestamp
=
$2
handle
"
${
env_name
}
"
"
${
build_timestamp
}
"
}
# 错误处理
trap
'echo 发生了错误,脚本中断.'
ERR
# 调用主函数
main
"
$@
"
pom.xml
浏览文件 @
f30ace05
...
@@ -121,7 +121,7 @@
...
@@ -121,7 +121,7 @@
<dependency>
<dependency>
<groupId>
org.apache.poi
</groupId>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi
</artifactId>
<artifactId>
poi
</artifactId>
<version>
4.1.2
</version>
<version>
5.4.1
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
commons-lang
</groupId>
<groupId>
commons-lang
</groupId>
...
@@ -131,7 +131,7 @@
...
@@ -131,7 +131,7 @@
<dependency>
<dependency>
<groupId>
org.apache.poi
</groupId>
<groupId>
org.apache.poi
</groupId>
<artifactId>
poi-ooxml
</artifactId>
<artifactId>
poi-ooxml
</artifactId>
<version>
4.1.2
</version>
<version>
5.4.1
</version>
</dependency>
</dependency>
<dependency>
<dependency>
<groupId>
com.alibaba.fastjson2
</groupId>
<groupId>
com.alibaba.fastjson2
</groupId>
...
...
src/main/java/com/zzsn/excelexportservice/service/ExcelExportService.java
浏览文件 @
f30ace05
差异被折叠。
点击展开。
src/main/resources/application.yml
浏览文件 @
f30ace05
server
:
server
:
port
:
8082
port
:
9120
spring
:
spring
:
application
:
application
:
name
:
excel-export-service
name
:
excel-export-service
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论