提交 d81d1eda 作者: 李星宇

1. 增加nacos配置

2. ssh免密登录改为docker-agent模式
上级 22cf9ee4
......@@ -19,6 +19,7 @@ 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}"
......@@ -27,8 +28,9 @@ ENV APP_OPTS3="-Dfile.encoding=utf-8"
ENV APP_OPTS4="-Duser.timezone=Asia/Shanghai"
ENV APP_OPTS5="-DNACOS_SERVER=${NACOS_SERVER}"
ENV APP_OPTS6="-DNACOS_NAMESPACE=${NACOS_NAMESPACE}"
ENV APP_OPTS7="-NACOS_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_OPTS5 $APP_OPTS6 -jar $JVM_OPTS /workspace/app.jar"]
\ No newline at end of file
ENTRYPOINT ["sh","-c","java $APP_OPTS1 $APP_OPTS2 $APP_OPTS3 $APP_OPTS4 $APP_OPTS5 $APP_OPTS6 $APP_OPTS7 -jar $JVM_OPTS /workspace/app.jar"]
\ No newline at end of file
......@@ -36,15 +36,17 @@ function handle {
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}"
echo "构建端口: ${svc_port}"
echo "部署节点: ${internal_ip}"
echo "构建版本: ${version}"
echo "推送仓库: ${domain}/${namespace}"
echo "完整镜像: ${domain}/${namespace}/${name}:${version}"
echo "---构建镜像---"
docker build --build-arg NACOS_SERVER=${nacos_server} --build-arg NACOS_NAMESPACE=${nacos_namespace} \
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 "---推送镜像---"
......
......@@ -7,6 +7,8 @@ domain="swr.cn-southwest-2.myhuaweicloud.com"
namespace="wd"
# 服务配置
# 部署节点的内网IP
internal_ip=192.168.0.19
# 数据挂载根目录
root_dir="/zzsn"
# 需根据日志配置填写,比如:logback-spring.xml
......@@ -16,7 +18,10 @@ svc_env="prod"
# 服务名
svc_name="think-tank"
# 服务端口
svc_port="9098"
svc_port="9099"
# nacos配置
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
## nacos服务地址, 配置文件使用 NACOS_SERVER
nacos_server="192.168.0.249:8848"
nacos_namespace="smartTest"
## nacos命名空间, 配置文件使用 NACOS_NAMESPACE
nacos_namespace="smartProd"
......@@ -7,6 +7,8 @@ domain="swr.cn-southwest-2.myhuaweicloud.com"
namespace="wd"
# 服务配置
# 部署节点的内网IP
internal_ip=192.168.0.19
# 数据挂载根目录
root_dir="/zzsn"
# 需根据日志配置填写,比如:logback-spring.xml
......@@ -18,5 +20,8 @@ svc_name="think-tank"
# 服务端口
svc_port="9099"
# nacos配置
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
## nacos服务地址, 配置文件使用 NACOS_SERVER
nacos_server="192.168.0.249:8848"
## nacos命名空间, 配置文件使用 NACOS_NAMESPACE
nacos_namespace="smartTest"
......@@ -34,26 +34,30 @@ function handle {
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}---"
docker pull ${domain}/${namespace}/${name}:${version}
if [ "$(docker ps -aqf "name=^${name}")" ]; then
# 如果存在,则停止并删除容器
echo "停止并删除容器: ${name}"
docker rm -f "${name}"
# 构建 JSON 数据
json_data=$(cat <<EOF
{
"container_name": "${svc_name}",
"image_version": "${domain}/${namespace}/${name}:${version}",
"ports": ["${svc_port}:${svc_port}"],
"mount_infos": ["/etc/localtime:/etc/localtime:ro", "${dir}/logs:${svc_logs}"]
}
EOF
)
# 执行 curl 请求,并将响应结果存储在 response 变量中
response=$(curl -s -X POST -H "Content-Type: application/json" -d "$json_data" "http://$internal_ip:10080/start-container")
# 检查响应中是否包含 "succeed"
if echo "$response" | grep -q "Successfully"; then
echo "请求成功,响应中包含 Successfully。"
exit 0
else
echo "容器不存在直接运行: ${name}"
echo "请求失败,响应中不包含 Successfully。"
exit 1
fi
docker run --restart always -d -p ${svc_port}:${svc_port} --name ${name} \
-v /etc/localtime:/etc/localtime:ro \
-v ${dir}/logs:${svc_logs} \
${domain}/${namespace}/${name}:${version}
echo "---清理none镜像---"
docker image prune -af
}
# 主程序入口点
......
......@@ -7,5 +7,5 @@ spring:
namespace: smartTest
discovery:
namespace: smartTest
ip: 192.168.0.249
ip: ${NACOS_REGISTER_IP}
port: ${server.port}
\ No newline at end of file
......@@ -2,13 +2,13 @@ spring:
cloud:
nacos:
config:
server-addr: ${NACOS_SERVER:1.95.57.223:8848}
server-addr: ${NACOS_SERVER}
username: ZZSN(ZIgriRlkxZ2g3SxM9x6sVYcMQe2QVxXx0/l4BAivWsTeVPkAYERSKxlHxzUwHF5M)
password: ZZSN(zB38iUSsp2RptT9HMrjJ0qGdSJ5iwq3jToor7ozqfMOYTiC6RwOvAxdayF7x9qm/)
file-extension: yml
namespace: ${NACOS_NAMESPACE:smartDev}
discovery:
server-addr: ${NACOS_SERVER:1.95.57.223:8848}
server-addr: ${NACOS_SERVER}
username: ZZSN(ZIgriRlkxZ2g3SxM9x6sVYcMQe2QVxXx0/l4BAivWsTeVPkAYERSKxlHxzUwHF5M)
password: ZZSN(zB38iUSsp2RptT9HMrjJ0qGdSJ5iwq3jToor7ozqfMOYTiC6RwOvAxdayF7x9qm/)
namespace: ${NACOS_NAMESPACE:smartDev}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论