docker操作腳本
根據容器名稱查詢容器ID並刪除

# 第一種寫法 docker stop `docker ps -a| grep project | awk '{print $1}' ` docker rm `docker ps -a| grep project | awk '{print $1}' ` # 第二種寫法 docker stop `docker ps -aq --filter name=project` docker rm `docker ps -aq --filter name=project`
根據鏡像名稱查詢容器ID並刪除

# 第一種寫法 docker stop `docker ps -a| grep yiui/project:1.0.2 | awk '{print $1}' ` docker rm `docker ps -a| grep yiui/project:1.0.2 | awk '{print $1}' ` # 第二種寫法 docker stop `docker ps -aq --filter ancestor=yiui/project:1.0` docker rm `docker ps -aq --filter ancestor=yiui/project:1.0`
根據鏡像名稱查詢鏡像ID並刪除

docker images -q --filter reference=yiui/project*:* docker image rm `docker images -q --filter reference=10.2.21.95:10001/treasury-brain*:*`
判斷網絡是否存在,不存在進行創建

#! /usr/bin/bash # 定義一個名稱變量 network_name="oa_default" filterName=`docker network ls | grep $network_name | awk '{ print $2 }'` if [ "$filterName" == "" ]; then #不存在就創建 docker network create $network_name fi
可參考官方文檔
docker拉取

#version內容 #gdd 1.1.3 # 容器名 name=`cat version | awk '{print $1}'` # 容器標簽 tag=`cat version | awk '{print $2}'` # 倉庫域名 domain=registry.cn-shenzhen.aliyuncs.com # 倉庫URL url=colehuang/coletest # 從Docker鏡像倉庫中拉取鏡像 docker login --username=xxx --password=xxx $domain docker pull $domain/$url:$tag # 停止該鏡像正在運行的Docker容器 line=`docker ps | grep $name` if [ -n "$line" ]; then echo "存在正在運行的$name容器, 正在使其停止運行..." docker stop $name echo "$name容器, 已停止運行" fi # 刪除該鏡像的Docker容器 line=`docker ps -a | grep $name` if [ -n "$line" ]; then echo "存在$name容器, 對其進行刪除..." docker rm $name echo "$name容器, 已被刪除" fi # 啟動容器 docker run --rm --name $name -p 8008:8006 -d $domain/$url:$tag IFS=$'\n' # 刪除多余鏡像 images=`docker images | grep $domain/$url` for i in $images do echo $i t=`echo "$i" | awk '{print $2}'` if [ "$t" != "$tag" ]; then id=`echo "$i" | awk '{print $3}'` docker rmi $id fi done
docker推送

# 容器名 name=`cat version | awk '{print $1}'` # 容器標簽 tag=`cat version | awk '{print $2}'` # 倉庫域名 domain=registry-vpc.cn-shenzhen.aliyuncs.com # 倉庫URL url=colehuang/coletest # 構建Docker鏡像 docker build -t $name:$tag . # 獲取鏡像ID id=`docker images | grep $name | grep $tag | awk '{ print $3 }'` # 鏡像上傳至Docker鏡像倉庫 docker login --username=xxx --password=xxx $domain docker tag $id $domain/$url:$tag docker push $domain/$url:$tag
shell腳本
需要可用於遠程后台執行的腳本

#方式一 nohup ./main >run.log 2>&1 & 回車 輸入exit命令退出終端 關閉shell #方式二 nohup ./main &
重啟進程項目
基於shell腳本實現
shell_restart.sh
執行
chmod +x shell_restart.sh
./shell_start.sh 9099

#!/bin/bash if [ -z "$1" ]; then echo "you must input a port" exit 0 fi PID=$(netstat -nlp | grep ":$1" | awk '{print $7}' | awk -F '[ / ]' '{print $1}') if [ "${PID}" != "" ]; then echo "process id is:${PID}" kill -9 "${PID}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "停止舊項目失敗" exit 2 fi echo "停止舊項目成功" else echo "沒有舊項目" fi #重命名並啟動 cp main app chmod +x app nohup ./app >run.log 2>&1 & # shellcheck disable=SC2181 #判斷是否啟動成功 if [ $? != 0 ]; then echo "新項目啟動失敗" exit 2 fi echo "新項目啟動成功" exit 0
基於docker本地部署實現
版本1
(包含公共網絡,重啟,刪除舊鏡像)

#!/bin/bash #接收端口 if [ -z "$1" ]; then echo "you must input a port" exit 0 fi if [ -z "$2" ]; then echo "you must input a image_name" exit 0 fi if [ -z "$3" ]; then echo "you must input a container_name" exit 0 fi image_name=$2 container_name=$3 container_port=$1 #讀取鏡像tag old_tags=$(docker images --filter=reference="${image_name}" --format "{{.Tag}}") #刪除多余鏡像 # shellcheck disable=SC2206 array=(${old_tags//," " /}) old_tag="${array[-1]}" # shellcheck disable=SC2068 for i in ${array[@]}; do # shellcheck disable=SC2154 if [ "$i" == "${old_tag}" ]; then continue fi echo "刪除鏡像" "$i" docker rmi "${image_name}":"${i}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除失敗:tag=""${i}" else echo "刪除成功:tag=""${i}" fi done echo old_tag="${old_tag}" old_image_id=$(docker images -q --filter reference="${image_name}":"${old_tag}") echo old_image_id="${old_image_id}" if [ "${old_tag}" != "" ]; then tag="${old_tag}" else tag=1 fi # shellcheck disable=SC2034 new_tag=$((tag + 1)) #構建本次鏡像 #構建鏡像 docker build -t "${image_name}":"${new_tag}" . # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "新構建鏡像失敗" exit 2 fi echo "構建鏡像成功" #關閉上次容器 old_container_id=$(docker ps -aq --filter name="${container_name}") if [ "${old_container_id}" != "" ]; then # shellcheck disable=SC2006 exist=$(docker inspect --format '{{.State.Running}}' "${container_name}") #容器已經被啟動了 if [ "${exist}" == "true" ]; then docker stop "${old_container_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "停止舊容器失敗" exit 2 fi echo "停止舊容器成功" fi #刪除舊容器 if [ "${old_container_id}" != "" ]; then docker rm -f "${old_container_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除舊容器失敗" exit 2 fi echo "刪除舊容器成功" fi fi #啟動本次容器 new_container_id=$(docker run --name "${container_name}" --net=common_net --restart=always -p "${container_port}" -d "${image_name}":"${new_tag}") # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "新容器啟動失敗" #容器回滾 #關閉本次容器 if [ "${new_container_id}" != "" ]; then docker rm -f "${new_container_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除新容器失敗" exit 2 fi echo "刪除新容器成功" fi #刪除新鏡像 new_image_id=$(docker images -q --filter reference="${image_name}":"${new_tag}") if [ "${new_image_id}" != "" ]; then docker rmi -f "${new_image_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除新鏡像失敗" exit 2 fi echo "刪除新鏡像成功" fi if [ "${old_image_id}" != "" ]; then #啟動上次容器 docker run --name "${container_name}" --net=common_net --restart=always -p "${container_port}" -d "${image_name}":"${old_tag}" if [ $? != 0 ]; then echo "容器回滾失敗" exit 2 else echo "容器回滾成功" fi else echo "沒有上個版本鏡像不能回滾" exit 2 fi else echo "新容器啟動成功" #刪除舊鏡像 echo old_image_id="${old_image_id}" if [ "${old_image_id}" != "" ]; then docker rmi -f "${old_image_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除舊鏡像失敗" exit 2 fi echo "刪除舊鏡像成功" else echo "沒有舊鏡像" fi fi
版本2
默認使用外部網絡common_net,默認重啟
- chmod +x docker_iter.sh
#端口,鏡像 容器
- ./docker_iter.sh 9081:9081 yiui/shoptool shoptool

#!/bin/bash #接收端口 if [ -z "$1" ]; then echo "you must input a port" exit 0 fi if [ -z "$2" ]; then echo "you must input a image_name" exit 0 fi if [ -z "$3" ]; then echo "you must input a container_name" exit 0 fi image_name=$2 container_name=$3 container_port=$1 #讀取鏡像tag old_tags=$(docker images --filter=reference="${image_name}" --format "{{.Tag}}") #刪除多余鏡像 # shellcheck disable=SC2206 array=(${old_tags//," " /}) old_tag="${array[-1]}" # shellcheck disable=SC2068 for i in ${array[@]}; do # shellcheck disable=SC2154 if [ "$i" == "${old_tag}" ]; then continue fi echo "刪除鏡像" "$i" docker rmi "${image_name}":"${i}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除失敗:tag=""${i}" else echo "刪除成功:tag=""${i}" fi done echo old_tag="${old_tag}" old_image_id=$(docker images -q --filter reference="${image_name}":"${old_tag}") echo old_image_id="${old_image_id}" if [ "${old_tag}" != "" ]; then tag="${old_tag}" else tag=1 fi # shellcheck disable=SC2034 new_tag=$((tag + 1)) #構建本次鏡像 #構建鏡像 docker build -t "${image_name}":"${new_tag}" . # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "新構建鏡像失敗" exit 2 fi echo "構建鏡像成功" #關閉上次容器 old_container_id=$(docker ps -aq --filter name="${container_name}") if [ "${old_container_id}" != "" ]; then # shellcheck disable=SC2006 exist=$(docker inspect --format '{{.State.Running}}' "${container_name}") #容器已經被啟動了 if [ "${exist}" == "true" ]; then docker stop "${old_container_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "停止舊容器失敗" exit 2 fi echo "停止舊容器成功" fi #刪除舊容器 if [ "${old_container_id}" != "" ]; then docker rm -f "${old_container_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除舊容器失敗" exit 2 fi echo "刪除舊容器成功" fi fi #啟動本次容器 new_container_id=$(docker run --name "${container_name}" --net=common_net --restart=always -p "${container_port}" -d "${image_name}":"${new_tag}") # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "新容器啟動失敗" #容器回滾 #關閉本次容器 if [ "${new_container_id}" != "" ]; then docker rm -f "${new_container_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除新容器失敗" exit 2 fi echo "刪除新容器成功" fi #刪除新鏡像 new_image_id=$(docker images -q --filter reference="${image_name}":"${new_tag}") if [ "${new_image_id}" != "" ]; then docker rmi -f "${new_image_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除新鏡像失敗" exit 2 fi echo "刪除新鏡像成功" fi if [ "${old_image_id}" != "" ]; then #啟動上次容器 docker run --name "${container_name}" --net=common_net --restart=always -p "${container_port}" -d "${image_name}":"${old_tag}" if [ $? != 0 ]; then echo "容器回滾失敗" exit 2 else echo "容器回滾成功" fi else echo "沒有上個版本鏡像不能回滾" exit 2 fi else echo "新容器啟動成功" #刪除舊鏡像 echo old_image_id="${old_image_id}" if [ "${old_image_id}" != "" ]; then docker rmi -f "${old_image_id}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "刪除舊鏡像失敗" exit 2 fi echo "刪除舊鏡像成功" else echo "沒有舊鏡像" fi fi
基於docker阿里雲遠程部署實現
基於docker本地倉庫部署實現
java項目shell腳本部署
./shell_start.sh 9031

#!/bin/bash if [ -z "$1" ]; then echo "you must input a port" exit 0 fi PID=$(netstat -nlp | grep ":$1" | awk '{print $7}' | awk -F '[ / ]' '{print $1}') if [ "${PID}" != "" ]; then echo "process id is:${PID}" kill -9 "${PID}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "停止舊項目失敗" exit 2 fi echo "停止舊項目成功" else echo "沒有舊項目" fi #重命名並啟動 cp target/pisces-system-1.0.0.jar target/app.jar chmod +x target/* nohup java -jar target/app.jar >run.log 2>&1 & # shellcheck disable=SC2181 #判斷是否啟動成功 if [ $? != 0 ]; then echo "新項目啟動失敗" exit 2 fi echo "新項目啟動成功" exit 0
shell_iter.sh
./shell_iter.sh 9031 target/pisces-system-1.0.0.jar

#!/bin/bash if [ -z "$1" ]; then echo "you must input a port" exit 0 fi if [ -z "$2" ]; then echo "you must input a exec file" exit 0 fi #PID=$(netstat -nlp | grep ":$1" | awk '{print $7}' | awk -F '[ / ]' '{print $1}') #讀取pid PID=$(cat ./shaw-test-web.pid) if [ "${PID}" != "" ]; then echo "process id is:${PID}" kill -9 "${PID}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "停止舊項目失敗" exit 2 fi echo "停止舊項目成功" else echo "沒有舊項目" fi #重命名並啟動 cp "${2}" app.jar chmod +x app.jar nohup java -jar app.jar --spring.profiles.active=prod >run.log 2>&1 & # shellcheck disable=SC2181 echo $! >./shaw-test-web.pid #判斷是否啟動成功 if [ $? != 0 ]; then echo "新項目啟動失敗" exit 2 fi echo "新項目啟動成功" exit 0
nginx腳本
nginx+dockerfile代理部署
Dockerfile

FROM nginx:latest WORKDIR /dist COPY . . COPY build/ /usr/share/nginx/html/ # COPY default.conf /etc/nginx/conf.d/default.conf EXPOSE 6001
default.conf

server { listen 80; server_name localhost; root /usr/share/nginx/html; index index.html index.htm; location /tool/ { proxy_set_header Host $host; #保留代理之前的host proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真實客戶端ip proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; #在多級代理的情況下,記錄每次代理之前的客戶端真實ip # limit_req zone=myRateLimit burst=20 nodelay; proxy_pass http://192.168.10.231:9081/; proxy_redirect default; #指定修改被代理服務器返回的響應頭中的location頭域跟refresh頭域數值 } #DENY_FILES_START location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) { return 403; } #DENY_FILES_END location ~ .+\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 1d; error_log off; access_log off; } location ~ .+\.(js|css)$ { expires 1h; error_log off; access_log off; } location = /favicon.ico { log_not_found off; access_log off; } access_log logs/access.log; error_log logs/error.log; }
配置文件處理(替換路由)
server='http://192.168.10.231:9033' sed -i "s#baseURL[^,]*#baseURL: \'$server\'#g" src/request/axios.conf.ts
shell腳本作為用戶變量使用
java項目docker部署腳本
自動部署

#!/bin/bash #docker_iter.sh aquarius-api 9023 prod if [ -z "$1" ]; then echo "you must input a projectName" exit 0 fi if [ -z "$2" ]; then echo "you must input a port" exit 0 fi if [ -z "$3" ]; then echo "you must input a envType" exit 0 fi dockerhub_url="registry.cn-hangzhou.aliyuncs.com" namespace="hongyi_repository" projectName=$1 port=$2 envType=$3 imageName=$dockerhub_url/$namespace/$projectName containerIdOld=$(docker ps -a | grep -w "${projectName}" | awk '{print $1}') imageNameOld=$(docker ps -a | grep -w "${projectName}" | awk '{print $2}') #讀取鏡像tag # shellcheck disable=SC2034 tagOld=$(docker images --filter=reference="${imageNameOld}" --format "{{.Tag}}") # shellcheck disable=SC2034 tagNew=$((tagOld + 1)) echo "打印新tag" echo $tagNew #構建本次鏡像 # shellcheck disable=SC2154 imageNameNew=${imageName}:${tagNew} echo "$imageNameNew" #構建鏡像 # shellcheck disable=SC2154 docker build -t "${imageNameNew}" --build-arg envType="${envType}" . # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "新構建鏡像失敗" exit 2 fi echo "構建鏡像成功" #關閉上次容器 containerIdOld=$(docker ps -aq --filter name="${projectName}") if [ "$containerIdOld" != "" ]; then #停掉容器 docker stop "$containerIdOld" #刪除容器 # shellcheck disable=SC2086 docker rm $containerIdOld echo "停止刪除舊容器成功" else echo "舊容器不存在" fi #啟動本次容器 # 啟動新容器 # --net=common_net --restart=always docker run -di --name "$projectName" --net=common_net --restart=always -p "$port":"$port" "$imageNameNew" # shellcheck disable=SC2181 if [ $? == 0 ]; then echo "新容器啟動成功" if [ "$imageNameOld" != "" ]; then docker rmi -f "$imageNameOld" if [ $? == 0 ]; then echo "刪除舊鏡像成功" else echo "刪除舊鏡像失敗" fi exit 0 else echo "舊鏡像不存在" fi else echo "新容器啟動失敗" containerIdNew=$(docker ps -a | grep -w "${projectName}" | awk '{print $1}') #刪除新容器 if [ "$containerIdNew" != "" ]; then #停掉容器 docker stop "$containerIdNew" docker rm "$containerIdNew" echo "停止刪除新容器成功" #啟動舊容器 # 啟動新容器 # --net=common_net --restart=always docker run -di --name "$projectName" --net=common_net --restart=always -p "$port":"$port" "$imageNameOld" if [ $? == 0 ]; then echo "部署回滾成功" else echo "部署回滾失敗" exit 1 fi #刪除舊鏡像 docker rmi -f "$imageNameNew" if [ $? == 0 ]; then echo "刪除新鏡像成功" else echo "刪除新鏡像失敗" fi fi fi
手動發布

#! /bin/sh #docker_publish.sh aquarius-system hongyi_repository 33 aquarius-system prod #docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816 projectName=$1 if [ -z "$projectName" ]; then echo "you must input a projectName" exit 1 fi tag=$2 if [ -z "$tag" ]; then echo "you must input a tag" exit 1 fi envType=$3 if [ -z "$envType" ]; then echo "you must input a envType" exit 1 fi dockerhub_url="registry.cn-hangzhou.aliyuncs.com" namespace="hongyi_repository" #9023 #docker login -u 用戶名 -p 密碼 192.168.2.6:85 #docker pull 192.168.2.6:85/tensquare/eureka:v1 imageName=$dockerhub_url/$namespace/$projectName:$tag # shellcheck disable=SC2154 docker build -t "${imageName}" --build-arg envType="${envType}" . # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "鏡像構建失敗" exit 1 else echo "鏡像構建成功" fi # 登錄Harbor #docker login --username=虹蟻科技 --password=docker.hongyi registry.cn-hangzhou.aliyuncs.com docker login --username=虹蟻科技 --password=docker.hongyi "$dockerhub_url" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "登錄失敗" exit 1 else echo "登錄成功" fi echo "------------------------------開始推送${imageName}到倉庫------------------------------" docker push "${imageName}" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "${imageName}推送失敗" exit 1 else echo "${imageName}推送成功" exit 0 fi
手動部署

#! /bin/sh #docker_deploy.sh registry.cn-hangzhou.aliyuncs.com hongyi_repository aquarius-system "${tag}" 9021 #接收外部參數 dockerhub_url=$1 if [ -z "$dockerhub_url" ]; then echo "you must input a dockerhub_url" exit 1 fi #192.168.10.119:8087 #命名空間 namespace=$2 if [ -z "$namespace" ]; then echo "you must input a namespace" exit 1 fi #aquarius projectName=$3 if [ -z "$projectName" ]; then echo "you must input a project_name" exit 1 fi #aquarius-api tag=$4 if [ -z "$tag" ]; then echo "you must input a tag" exit 1 fi #3 port=$5 if [ -z "$port" ]; then echo "you must input a port" exit 1 fi #9023 #docker login -u 用戶名 -p 密碼 192.168.2.6:85 #docker pull 192.168.2.6:85/tensquare/eureka:v1 imageNameNew=$dockerhub_url/$namespace/$projectName:$tag echo "$imageNameNew" containerIdOld=$(docker ps -a | grep -w "${projectName}" | awk '{print $1}') imageNameOld=$(docker ps -a | grep -w "${projectName}" | awk '{print $2}') #讀取鏡像tag # shellcheck disable=SC2034 tagOld=$(docker images --filter=reference="${imageNameOld}" --format "{{.Tag}}") # # shellcheck disable=SC2039 if [ "$tagOld" == "$tag" ]; then echo "該鏡像已部署,不可重復部署" exit 1 fi #拉取新鏡像 # 登錄Harbor #docker login --username=虹蟻科技 --password=docker.hongyi registry.cn-hangzhou.aliyuncs.com docker login --username=虹蟻科技 --password=docker.hongyi "$dockerhub_url" # shellcheck disable=SC2181 if [ $? != 0 ]; then echo "登錄失敗" exit 1 else echo "登錄成功" fi # 下載鏡像 #docker pull registry.cn-hangzhou.aliyuncs.com/hongyi_repository/aquarius-api:latest echo "開始拉取鏡像" docker pull "$imageNameNew" # shellcheck disable=SC2181 if [ $? != 0 ]; then # shellcheck disable=SC2016 echo "鏡像${imageNameNew}拉取失敗" exit 1 else echo "鏡像${imageNameNew}拉取成功" fi #停止刪除,舊容器 if [ "$containerIdOld" != "" ]; then #停掉容器 docker stop "$containerIdOld" #刪除容器 # shellcheck disable=SC2086 docker rm $containerIdOld echo "停止刪除舊容器成功" else echo "舊容器不存在" fi # 啟動新容器 # --net=common_net --restart=always docker run -di --name "$projectName" --net=common_net --restart=always -p "$port":"$port" "$imageNameNew" # shellcheck disable=SC2181 if [ $? == 0 ]; then echo "新容器啟動成功" if [ "$imageNameOld" != "" ]; then docker rmi -f "$imageNameOld" if [ $? == 0 ]; then echo "刪除舊鏡像成功" else echo "刪除舊鏡像失敗" fi exit 0 else echo "舊鏡像不存在" fi else echo "新容器啟動失敗" containerIdNew=$(docker ps -a | grep -w "${projectName}" | awk '{print $1}') #刪除新容器 if [ "$containerIdNew" != "" ]; then #停掉容器 docker stop "$containerIdNew" docker rm "$containerIdNew" echo "停止刪除新容器成功" #啟動舊容器 # 啟動新容器 # --net=common_net --restart=always docker run -di --name "$projectName" --net=common_net --restart=always -p "$port":"$port" "$imageNameOld" if [ $? == 0 ]; then echo "部署回滾成功" else echo "部署回滾失敗" exit 1 fi #刪除舊鏡像 docker rmi -f "$imageNameNew" if [ $? == 0 ]; then echo "刪除新鏡像成功" else echo "刪除新鏡像失敗" fi fi fi #echo "------------打印日志中------------" #sleep 60 #containerId=$(docker ps -a | grep -w "${project_name}" | awk '{print $1}') # #docker logs -t "$containerId" # #echo "------------打印日志結束------------" #module='' #調用腳本 #if [ "$module" == "aquarius-system" ]; then # echo "部署管理后台服務模塊" # docker_deploy.sh registry.cn-hangzhou.aliyuncs.com hongyi_repository aquarius-system "${tag}" 9021 #elif [ "$module" == "aquarius-api" ]; then # echo "部署客戶服務模塊" # docker_deploy.sh registry.cn-hangzhou.aliyuncs.com hongyi_repository aquarius-api "${tag}" 9023 #else # echo "模塊不存在" #fi
Dockerfile

# 基礎鏡像使用java FROM java:8 # 作者 MAINTAINER fengyun #docker build -t "${imageNameNew}" --build-arg envType="${envType}" . ARG envType # 將jar包添加到容器中並更名為app.jar COPY aquarius-api-1.0.0.jar app.jar RUN echo ${envType} EXPOSE 9023 # 運行jar包 ENTRYPOINT ["java", "-jar", "/app.jar", "--spring.profiles.active=$envType" ]