提交 d81d1eda 作者: 李星宇

1. 增加nacos配置

2. ssh免密登录改为docker-agent模式
上级 22cf9ee4
...@@ -19,6 +19,7 @@ COPY --from=builder /workspace/target/*.jar /workspace/app.jar ...@@ -19,6 +19,7 @@ COPY --from=builder /workspace/target/*.jar /workspace/app.jar
ARG ENV_NAME ARG ENV_NAME
ARG NACOS_SERVER ARG NACOS_SERVER
ARG NACOS_NAMESPACE ARG NACOS_NAMESPACE
ARG NACOS_REGISTER_IP
ARG PORT ARG PORT
ENV APP_OPTS1="-Dspring.profiles.active=${ENV_NAME}" ENV APP_OPTS1="-Dspring.profiles.active=${ENV_NAME}"
...@@ -27,8 +28,9 @@ ENV APP_OPTS3="-Dfile.encoding=utf-8" ...@@ -27,8 +28,9 @@ ENV APP_OPTS3="-Dfile.encoding=utf-8"
ENV APP_OPTS4="-Duser.timezone=Asia/Shanghai" ENV APP_OPTS4="-Duser.timezone=Asia/Shanghai"
ENV APP_OPTS5="-DNACOS_SERVER=${NACOS_SERVER}" ENV APP_OPTS5="-DNACOS_SERVER=${NACOS_SERVER}"
ENV APP_OPTS6="-DNACOS_NAMESPACE=${NACOS_NAMESPACE}" ENV APP_OPTS6="-DNACOS_NAMESPACE=${NACOS_NAMESPACE}"
ENV APP_OPTS7="-NACOS_REGISTER_IP=${NACOS_REGISTER_IP}"
ENV JVM_OPTS="-Xmx2024M -Xms256M" ENV JVM_OPTS="-Xmx2024M -Xms256M"
EXPOSE ${PORT} EXPOSE ${PORT}
ENTRYPOINT ["sh","-c","java $APP_OPTS1 $APP_OPTS2 $APP_OPTS3 $APP_OPTS4 $APP_OPTS5 $APP_OPTS6 -jar $JVM_OPTS /workspace/app.jar"] 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 \ No newline at end of file
...@@ -36,15 +36,17 @@ function handle { ...@@ -36,15 +36,17 @@ function handle {
local dir="${root_dir}/${svc_name}/${svc_env}" local dir="${root_dir}/${svc_name}/${svc_env}"
local name="${svc_name}-${svc_env}" local name="${svc_name}-${svc_env}"
local version=${version}-${build_timestamp} local version=${version}-${build_timestamp}
local internal_ip="${internal_ip}"
echo "构建名称: ${name}" echo "构建名称: ${name}"
echo "构建端口: ${svc_port}" echo "构建端口: ${svc_port}"
echo "部署节点: ${internal_ip}"
echo "构建版本: ${version}" echo "构建版本: ${version}"
echo "推送仓库: ${domain}/${namespace}" echo "推送仓库: ${domain}/${namespace}"
echo "完整镜像: ${domain}/${namespace}/${name}:${version}" echo "完整镜像: ${domain}/${namespace}/${name}:${version}"
echo "---构建镜像---" 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} . --build-arg ENV_NAME=${svc_env} --build-arg PORT=${svc_port} -f ./build/Dockerfile -t ${domain}/${namespace}/${name}:${version} .
echo "---推送镜像---" echo "---推送镜像---"
......
...@@ -7,6 +7,8 @@ domain="swr.cn-southwest-2.myhuaweicloud.com" ...@@ -7,6 +7,8 @@ domain="swr.cn-southwest-2.myhuaweicloud.com"
namespace="wd" namespace="wd"
# 服务配置 # 服务配置
# 部署节点的内网IP
internal_ip=192.168.0.19
# 数据挂载根目录 # 数据挂载根目录
root_dir="/zzsn" root_dir="/zzsn"
# 需根据日志配置填写,比如:logback-spring.xml # 需根据日志配置填写,比如:logback-spring.xml
...@@ -16,7 +18,10 @@ svc_env="prod" ...@@ -16,7 +18,10 @@ svc_env="prod"
# 服务名 # 服务名
svc_name="think-tank" svc_name="think-tank"
# 服务端口 # 服务端口
svc_port="9098" svc_port="9099"
# nacos配置 # nacos配置
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
## nacos服务地址, 配置文件使用 NACOS_SERVER
nacos_server="192.168.0.249:8848" 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" ...@@ -7,6 +7,8 @@ domain="swr.cn-southwest-2.myhuaweicloud.com"
namespace="wd" namespace="wd"
# 服务配置 # 服务配置
# 部署节点的内网IP
internal_ip=192.168.0.19
# 数据挂载根目录 # 数据挂载根目录
root_dir="/zzsn" root_dir="/zzsn"
# 需根据日志配置填写,比如:logback-spring.xml # 需根据日志配置填写,比如:logback-spring.xml
...@@ -18,5 +20,8 @@ svc_name="think-tank" ...@@ -18,5 +20,8 @@ svc_name="think-tank"
# 服务端口 # 服务端口
svc_port="9099" svc_port="9099"
# nacos配置 # nacos配置
## 往nacos注册IP,配置文件使用变量 NACOS_REGISTER_IP
## nacos服务地址, 配置文件使用 NACOS_SERVER
nacos_server="192.168.0.249:8848" nacos_server="192.168.0.249:8848"
## nacos命名空间, 配置文件使用 NACOS_NAMESPACE
nacos_namespace="smartTest" nacos_namespace="smartTest"
...@@ -34,26 +34,30 @@ function handle { ...@@ -34,26 +34,30 @@ function handle {
local dir="${root_dir}/${svc_name}/${svc_env}" local dir="${root_dir}/${svc_name}/${svc_env}"
local name="${svc_name}-${svc_env}" local name="${svc_name}-${svc_env}"
local version=${version}-${build_timestamp} local version=${version}-${build_timestamp}
local internal_ip="${internal_ip}"
echo "---运行容器: ${name}:${version}---" echo "---运行容器: ${name}:${version}---"
docker pull ${domain}/${namespace}/${name}:${version} # 构建 JSON 数据
json_data=$(cat <<EOF
if [ "$(docker ps -aqf "name=^${name}")" ]; then {
# 如果存在,则停止并删除容器 "container_name": "${svc_name}",
echo "停止并删除容器: ${name}" "image_version": "${domain}/${namespace}/${name}:${version}",
docker rm -f "${name}" "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 else
echo "容器不存在直接运行: ${name}" echo "请求失败,响应中不包含 Successfully。"
exit 1
fi 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: ...@@ -7,5 +7,5 @@ spring:
namespace: smartTest namespace: smartTest
discovery: discovery:
namespace: smartTest namespace: smartTest
ip: 192.168.0.249 ip: ${NACOS_REGISTER_IP}
port: ${server.port} port: ${server.port}
\ No newline at end of file
...@@ -2,13 +2,13 @@ spring: ...@@ -2,13 +2,13 @@ spring:
cloud: cloud:
nacos: nacos:
config: config:
server-addr: ${NACOS_SERVER:1.95.57.223:8848} server-addr: ${NACOS_SERVER}
username: ZZSN(ZIgriRlkxZ2g3SxM9x6sVYcMQe2QVxXx0/l4BAivWsTeVPkAYERSKxlHxzUwHF5M) username: ZZSN(ZIgriRlkxZ2g3SxM9x6sVYcMQe2QVxXx0/l4BAivWsTeVPkAYERSKxlHxzUwHF5M)
password: ZZSN(zB38iUSsp2RptT9HMrjJ0qGdSJ5iwq3jToor7ozqfMOYTiC6RwOvAxdayF7x9qm/) password: ZZSN(zB38iUSsp2RptT9HMrjJ0qGdSJ5iwq3jToor7ozqfMOYTiC6RwOvAxdayF7x9qm/)
file-extension: yml file-extension: yml
namespace: ${NACOS_NAMESPACE:smartDev} namespace: ${NACOS_NAMESPACE:smartDev}
discovery: discovery:
server-addr: ${NACOS_SERVER:1.95.57.223:8848} server-addr: ${NACOS_SERVER}
username: ZZSN(ZIgriRlkxZ2g3SxM9x6sVYcMQe2QVxXx0/l4BAivWsTeVPkAYERSKxlHxzUwHF5M) username: ZZSN(ZIgriRlkxZ2g3SxM9x6sVYcMQe2QVxXx0/l4BAivWsTeVPkAYERSKxlHxzUwHF5M)
password: ZZSN(zB38iUSsp2RptT9HMrjJ0qGdSJ5iwq3jToor7ozqfMOYTiC6RwOvAxdayF7x9qm/) password: ZZSN(zB38iUSsp2RptT9HMrjJ0qGdSJ5iwq3jToor7ozqfMOYTiC6RwOvAxdayF7x9qm/)
namespace: ${NACOS_NAMESPACE:smartDev} namespace: ${NACOS_NAMESPACE:smartDev}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论