Springboot工程制作镜像并推送到阿里云

2023-10-31

springboot工程

我们在这里找了一个原来的项目工程,项目结构如下:

Dockerfile文件编写

FROMjava:8
VOLUME/tmp
ADDjwordpress-web.jarweb.jar
ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/web.jar"]

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录  项目的 jar 文件作为 “app.jar” 添加到容器的  ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source

制作镜像并发布到阿里云私有仓库

方法一:本地利用docker命令

Maven install 

INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] jwordpress-parent .................................. SUCCESS [  0.215 s]
[INFO] jworpdress-web ..................................... SUCCESS [  2.308 s]
[INFO] jwordpress-admin ................................... SUCCESS [  0.035 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.852 s

然后到target 目录下看是否生成了jar文件

然后将jwordpress-web.jar和Dockerfile 放在同一个文件下。执行下面命令 `` docker build -t jwordpress:web-1.0.3.RELEASE .

liuhaihua@liuhaihuadeMacBook-Pro target % docker build -t jwordpress:web-1.0.3.RELEASE .
Sending build context to Docker daemon  51.81MB
Step 1/4 : FROM java:8
 ---> d23bdf5b1b1b
Step 2/4 : VOLUME /tmp
 ---> Using cache
 ---> d27a75b4151c
Step 3/4 : ADD jwordpress-web.jar web.jar
 ---> 90b04ec165cc
Step 4/4 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/web.jar"]
 ---> Running in 4663a51a704e
Removing intermediate container 4663a51a704e
 ---> 312c514e7ecd
Successfully built 312c514e7ecd
Successfully tagged jwordpress:web-1.0.3.RELEASE

查看镜像

推送到阿里云镜像

$ sudo docker login --username=hi35928472@aliyun.com registry.cn-hangzhou.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/shanbei/web:[镜像版本号]
$ sudo docker push registry.cn-hangzhou.aliyuncs.com/shanbei/web:[镜像版本号]

例子如下图:

登陆阿里云仓库看是否上传成功

方法二:利用maven插件

<plugins>
<!--docker支持插件-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${docker.repository.url}/${docker.repository.namespace}/${project.artifactId}:${project.version}</imageName>
<serverId>${docker.repository.serverId}</serverId>
<registryUrl>${docker.repository.url}</registryUrl>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

Setting.xml增加仓库用户名和密码

<servers>
    <server>
        <id>docker-aliyun-my</id>
        <username>xxxx@xxx.com</username>
        <password>xxxx</password>
        <configuration>
            <email>xxx@xxxx.com</email>
        </configuration>
    </server>
</servers>

常量

<docker.repository.url>registry.cn-qingdao.aliyuncs.com</docker.repository.url>
<docker.repository.namespace>shanbei</docker.repository.namespace>
<docker.repository.serverId>aliyun-docker-hub</docker.repository.serverId>

运行docker build

然后在运行docker push

2种方式都可以,现实中,我们可能需要jenkins来打包部署,所以最好采用第二种方式比较靠谱。

目前100000+人已关注加入我们

       

       

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Springboot工程制作镜像并推送到阿里云 的相关文章

  • BufferedImage 和 Graphics2D 画图,背景色透明

    File f new File D tag 20141204 chengxu business dossier business dossier web src main webapp upload 2017 08 07 C7A23630C
  • Element级联选择器Cascader使用(保存、回显)

    环境 版本 idea 2020 1 Element UI 2 13 2 vue 2 6 11 官方文档 https element eleme cn zh CN component cascader 业务场景 业务需求要给设备选择存放位置
  • c#连接读取mysql内容(报警无法连接处理方法)

    文章目录 一 Unable to connect to any of the specified MySQL hosts 二 Authentication to host 127 0 0 1 for user root using meth
  • csdn要考试了

    csdn要考试了 对于自己的是一次考验 第一次顺利过关 那第二次呢 还能如愿吗 人不是很多 竞争不是很激烈 我对自己有绝对的信心 因为我知道努力就会有收获 希望所有的河软的学生能进入csdn深造 能有一个好的机会 能够有一个好的前途 我希望
  • 并发编程系列之并发容器:ConcurrentHashMap

    前言 之前我们讲了线程 锁以及队列同步器等等一些并发相关底层的东西 当然Java开发者在开发中很少直接去使用之前所讲的 因为Java为了简化开发 为我们提供了一整套并发容器和框架 但是这些容器和框架都是建立在之前所讲的基础之上的 今天就让我
  • 基于 attention 机制的 LSTM 神经网络 超短期负荷预测方法学习记录

    LSTM long short term memory 长短期记忆 模型基础介绍 在标准LSTM体系结构中 有1个记忆单元状态和3个门 即更新门 u 遗忘门 f和输出门 o 标准LSTM的体系结构如图2所示 采用X1 X2 XT 表示LST
  • 数据相似性的度量

    在聚类 离散点分析等应用场景 我们往往需要度量数据之间的相似程度 提高模型的泛化性 一 首先 我们先从用于数据相似性度量的基本数据结构开始 数据矩阵和相异性矩阵 数据矩阵 或称对象 属性结构 矩阵每一行代表一个数据对象 每一列代表一个属性
  • IMT-2020(5G)推进组发布《5G-Advanced 场景需求与关键技术白皮书》

    11月16日 由工业和信息化部 深圳市人民政府主办的2022年中国5G发展大会在深圳举行 本届大会以 5G领航新基建 构筑发展新底座 为主题 会上 IMT 2020 5G 推进组发布 5G Advanced 场景需求与关键技术白皮书 中国工
  • 收藏的链接

    Epoll的本质 内部实现原理 Likes的博客 CSDN博客 epoll实现原理本文主体转自https zhuanlan zhihu com p 63179839 加上了自己的理解和批注从事服务端开发 少不了要接触网络编程 epoll作为
  • 改手机型号模块_2020年华为5g手机型号及价格

    这些年华为手机的发展 我们有目共睹 华为手机已经打出名号 特别是华为5G手机已经成为了华为占据市场的有力技术和产品 今年华为手机和荣耀手机齐发力 用了华为高端芯片 华为现在有三款集成5G芯片 麒麟990 麒麟990是华为当下麒麟系列最旗舰级
  • Android中opengles,egl库的结构

    目录 egl opengl es的软硬件实现 需要的库 库的分工 加载模块 软件实现模块 硬件实现模块 egl opengl es的软硬件实现 需要的库 算是android中的egl库 用来加载具体的实现 软件实现或者硬件实现 system
  • SpringBoot应用中使用AOP记录接口访问日志

    AOP AOP为Aspect Oriented Programming的缩写 意为 面向切面编程 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术 利用AOP可以对业务逻辑的各个部分进行隔离 从而使得业务逻辑各部分之间的耦合度
  • SQL ALTER TABLE 语句

    博客主页 开心档博客主页 欢迎关注 点赞 收藏 留言 本文由开心档原创 51CTO首发时间 2022年12月12日 这世界很喧嚣 做自己就好 作者水平很有限 如果发现错误 一定要及时告知作者哦 感谢感谢 本文介绍 ALTER TABLE 语
  • 分治法求最大子序列和------使用C语言

    分治法求最大子序列和 使用C语言 一 问题提出 二 算法分析 三 程序设计 四 程序结果显示 一 问题提出 给定一个序列 其中可能有正数也可能有负数 找出其中连续的一个子数列 不允许空序列 使它们的和尽可能大 二 算法分析 对于任意一个序列
  • Redis 链表

    redis链表定义 双链表 typedef struct listNode struct listNode prev struct listNode next void value listNode typedef struct list
  • intel c/c++ compiler 下载 安装 编译

    intel c c 编译器在并行 矢量化支持 高性能等方面具有较好性能 但在下载中破费了半天功夫来找它 不敢私藏 没有仔细看intel官网 有几个什么intel composer版本 没认真看和intel compiler的区别 下载 ht
  • 19_2_Training & Deploying TensorFlowModels_%%writefile UsageError_colab_文件名含有空格_No dashboard_gcp

    19 Training and Deploying TensorFlowModels at Scale walk目录 TensorFlow Serving requests REST gRPC Docker Google API Clien
  • 【mcuclub】水质检测模块-TDS

    一 实物图 型号 TDS 二 原理图 编号 名称 功能 1 GND 供电电压负极 2 VCC 供电电压正极 3 AO 模拟信号输出引脚 三 简介 TDS Total Dissolved Solids 中文解释为溶解性总固体 又称总含盐量 定
  • 哈工大操作系统实验3:进程运行轨迹的跟踪与统计

    前言 这个博客鸽了好久了 一来自己在准备数学建模 二来自己还是比较难以控制自己啊 还是会忍不住自己玩手机啊 一定要克制住自己啊 然后说一下这个实验吧 首先还是的对自己痛骂一下为啥么我总是犯一些低级错误 最让我头痛的一个bug竟然是if语句如
  • nfs服务器性能测试,nfs性能测试报告

    测试环境 软件nfs 1000M内网环境 测试说明 所有文件写入均在nfs客户端写入共享的目录中 然后在本地一个单独目录同样写入 比较二者时间及速度 1 大文件写入测试 创建5G的单个文件 Nfs 5000 0 records in 500

随机推荐

  • MATLAB画图练习

    这次画一些在数学建模中比较实用的图 掌握了其中的画图技巧 在比赛时改变一些参数就可以套用了 1 画极坐标图 clc clear clf theta 0 0 01 2 pi r 5 cos 10 theta polar theta r 2 画
  • Leveldb源码分析--13

    8 FilterPolicy Bloom之2 8 5 构建FilterBlock 8 5 1 FilterBlockBuilder 了解了filter机制 现在来看看filter block的构建 这就是类FilterBlockBuilde
  • 推挽电路和开集电路介绍

    推挽输出 Push Pull Output 推挽输出结构是由两个MOS或者三极管收到互补控制的信号控制 两个管子时钟一个在导通 一个在截止 如图1所示 图1 推挽输出结构 推挽输出的最大特点是可以真正能真正的输出高电平和低电平 在两种电平下
  • Jupyter

    jupyter安装conda环境 方法一 cmd进入环境 activate Env 运行 conda install nb conda kernels 方法二 首先安装ipykernel conda install ipykernel 在虚
  • 解决Python代码编码问题 SyntaxError: Non-UTF-8 code starting with '\xc1'

    学习编写Py程序时突然报错 SyntaxError Non UTF 8 code starting with xbb in file C Users v Desktop Test py on line 4 but no encoding d
  • 请求转发和重定向

    请求转发是在一次http请求中完成的 重定向是在多次的http请求中完成的 所以之后的request getParameter 得不到结果 RequestDispatcher是通过调用HttpServletRequest对象的getRequ
  • SeekBar.OnSeekBarChangeListener解析

    public static interface SeekBar OnSeekBarChangeListener android widget SeekBar OnSeekBarChangeListener 概述 当进度改变后用于通知客户端的
  • Qt中ui设计内容改变后,编译运行时新增控件无法显示问题

    解决方法 两种 第一种 在Qt的项目中 有一个Shadow build选项 取消勾选 然后重新编译运行 即可 第二种 不取消勾选Shadow build 在上面的图中可以看到 概要 中有一个 构建目录 复制这个路径 到文件资源管理器中输入这
  • OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性

    OpenText Exceed TurboX 通过安全远程访问高性能图形化应用程序和桌面保证业务连续性 OpenText Exceed TurboX 是一种安全的虚拟桌面解决方案 可实现现代混合工作 利用 Exceed TurboX 混合云
  • 2048游戏C语言代码

    听说2048游戏实现起来很easy 所以今天就试了试 确实不太难 要想编的很成功 也不是太容易 有很多细节需要考虑 下面是我自己设计的代码 估计里面会漏洞百出 希望路过大神能指点一二 include
  • 学习笔记-基数排序

    基数排序 将一个一维数组从大到小排列 基数排序是桶排序的扩展 它是一种稳定的排序方法 也就是说 排序之前相同大小的数字的位置次序在排序后并没有发生改变 同时 基数排序是一种用空间换时间的排序方法 当数据量过大时 java的堆内存耗尽 方法就
  • 如何使用python读取excel(一)

    在进行操作前 我们先熟悉一下excel表格的基本术语 工作簿 workbook 包含多个工作表的 表单 worksheet 指一个工作簿里面的每个表单 行 row 列 column 单元格 cell 这里我们使用openpyxl读取数据 查
  • Win10搭建Docker Desktop并安装vim

    Win10搭建Docker Desktop 1 介绍 Docker Desktop是适用于Windows的Docker桌面 是Docker设计用于在Windows 10上运行 它是一个本地 Windows 应用程序 为构建 交付和运行doc
  • 怎么查看虚拟机的IP地址?

    第一个方法ifconfig 先登录自己的虚拟机账号 进入桌面 然后右键 点击Open Terminal 输入ifconfig 然后回车 就可以了 第二种方法 也是上面的步骤 输入 ip addr也是同样的效果
  • 【Java基础篇

    个人主页 兜里有颗棉花糖 欢迎 点赞 收藏 留言 加关注 本文由 兜里有颗棉花糖 原创 收录于专栏 JavaSE primary 本专栏旨在分享学习JavaSE的一点学习心得 欢迎大家在评论区讨论 继承允许一个类继承另一个类的属性和方法 并
  • 通过Python调用禅道API

    禅道API接口 非REST接口 调试版本 11 3 百度出来的100 都用不了 本篇除外 于是自己修改了网上代码 先get session 再post登录 最后调用产品列表验证 实测通过 1 import requests 2 import
  • 2 应用层 - 应用层协议原理

    研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序 目录 1应用层协议原理 1 1 网络应用程序体系结构 1 2 进程通信 1 3 运输层协议选择 1 4 因特网提供的运输服务 1 4 1 TCP服务 1 4 2 U
  • unity如何现实增强_增强型世博会:Unity开发人员将如何成为未来的一部分

    unity如何现实增强 Unity is invested in Augmented Reality More than 91 of Hololens applications and 64 of mobile AR apps are ma
  • 200. Number of Islands

    求岛屿的数量 求岛屿的数目情况 主要有两种情况 解析 这道题目的本质问题其实是想就求 不相连的1 的块数目情况 在查找的过程当中 相邻的1是当做只有一块的基本情况 要去何必周边的1 情况 就是标记为是岛屿就行了这种情况下 就是利用一个一直回
  • Springboot工程制作镜像并推送到阿里云

    springboot工程 我们在这里找了一个原来的项目工程 项目结构如下 Dockerfile文件编写 FROMjava 8 VOLUME tmp ADDjwordpress web jarweb jar ENTRYPOINT java D