提交 cb702cf8 作者: yanxin

容器化部署配置

上级 8bf8a90b
......@@ -28,3 +28,8 @@ svc_port="9098"
nacos_server="192.168.0.224:8848"
nacos_username="nacos"
nacos_password="nacos"
# 资源限制
## cpu
limit_cpu=2.0
limit_mem=2g
\ No newline at end of file
......@@ -28,3 +28,8 @@ svc_port="9098"
nacos_server="192.168.0.225:8848"
nacos_username="nacos"
nacos_password="nacos"
# 资源限制
## cpu
limit_cpu=2.0
limit_mem=2g
\ No newline at end of file
......@@ -22,6 +22,7 @@ function print_usage {
function handle {
local env_name=$1
local build_timestamp=$2
local local_ip=$3
echo "执行的环境变量: ${env_name}"
echo "执行的构建时间戳: ${build_timestamp}"
......@@ -36,38 +37,43 @@ function handle {
local version=${version}-${build_timestamp}
echo "---运行容器: ${name}:${version}---"
docker login -u=${repo_username} -p=${repo_passwd} ${domain}
docker pull ${domain}/${namespace}/${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\" \
}"
if [ "$(docker ps -aqf "name=^${name}")" ]; then
# 如果存在,则停止并删除容器
echo "停止并删除容器: ${name}"
docker rm -f "${name}"
# 执行 curl 请求,并将响应结果存储在 response 变量中
response=$(curl -s -X POST -H "Content-Type: application/json" -H "X-API-Key: uOyKfp20pdM3MFhr3KAQBoe1UHCaZLUeeLephB57MPvGXTY05Eis5eaxta6fEtpa" -d "$json_data" "http://$local_ip:10080/start-container")
echo "响应结果: ${response}"
# 检查响应中是否包含 "succeed"
if echo "$response" | grep -q "successfully"; then
echo "部署成功"
exit 0
else
echo "容器不存在直接运行: ${name}"
echo "部署失败"
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
}
# 主程序入口点
function main {
if [ "$#" -ne 2 ]; then
if [ "$#" -ne 3 ]; then
print_usage
echo "错误: 需要提供两个个参数 <env_name> <build_timestamp>" >&2
echo "错误: 需要提供三个参数 <env_name> <build_timestamp> <local_ip>">&2
exit 1
fi
local env_name=$1
local build_timestamp=$2
local local_ip=$3
handle "${env_name}" "${build_timestamp}"
handle "${env_name}" "${build_timestamp}" "${local_ip}"
}
# 错误处理
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论