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 @   夜洛IT后端技术分享  阅读(3363)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示