docker打包镜像,上传镜像仓库,使用rancher发布

步骤一、首先将项目打包放在指定目录下

项目jar包名称为  micro-app.jar

 

步骤二、将jar包名称改为指定名称,执行命令   

docker build -t micro-gateway:v1.4 .

意义:执行当前目录下的dockerfile文件创建镜像,镜像的标签为  micro-gateway:v1.4

dockerfile的文件内容为

FROM 你的ip:你的端口/library/jdk8:v1.0  
MAINTAINER 你的标识
COPY ./restart.sh /restart.sh
COPY ./micro-app.jar /micro-app.jar
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ  /etc/localtime && echo $TZ > /etc/timezone
ENV NACOSADDRESS=""
ENV NACOSPORT=""
ENV REDISADDRESS=""
ENV REDISPORT=""
ENV MYSQLADDRESS=""
ENV MYSQLNAME=""
ENV MYSQLPASSWORD=""
EXPOSE 31006
WORKDIR /
ENTRYPOINT ["/bin/sh","/restart.sh"]

文件中的  NACOSADDRESS 等变量,对应spring boot 工程配置文件中的变量,yml配置文件的变量用${}修饰

restart.sh文件的内容如下

#!/bin/bash
# Author     : **
# Date       : **

ps -ef|grep micro-app|grep -v grep|cut -c 9-15|xargs kill -9

nohup java -Xms512m -Xmx1024m -XX:MaxPermSize=128m -Djava.net.preferIPv4Stack=true -jar micro-app.jar > log.out &

sleep 2
R=0
tail -f log.out|while read line
        do      
                ###tail -f  bug, double validate ###
                b=`echo $line|grep "Tomcat initialized with port(s):"|wc -l`
                if [ $b -eq 1 ];then
                        R=1 
                fi          
                a=`echo $line|grep "Tomcat started on port(s):"|wc -l`
                if [ $a -lt 1 ];then
                        echo $line
                else    
                        if [[ $R == 0 ]];then
                                echo $line   
                        else    
                                echo $line
                                ps -ef | grep 'tail -f log.out' | grep -v grep | awk '{print $2}' | xargs kill -9
                        fi         
                fi      
        done    
echo 'tomcat start complete!!'
exit

 步骤三、标记本地镜像,将其归入仓库

docker tag micro-gateway:v1.4 你的仓库地址:你的仓库端口/servers/micro-gateway:v1.4

步骤四、上传镜像到镜像仓库

docker push 你的仓库地址:你的仓库端口/servers/micro-gateway:v1.4

步骤五、使用rancher发布镜像,发布时指定你的变量值

 

 

posted @ 2019-08-30 11:08  夜洛IT后端技术分享  阅读(3341)  评论(0编辑  收藏  举报