在ECR上推送Spring Boot Docker映像

在先前的博客中,我们将Spring Boot应用程序与EC2集成在一起。 它是您可以在Amazon Web Services上进行的最原始的部署形式之一。

在本教程中,我们将使用我们的应用程序创建一个docker映像,该映像将存储到Amazon EC2容器注册表中 。

您需要安装aws cli工具。

我们将通过Spring应用程序获得尽可能简单的信息,因此我们将使用来自spring官方源页面的示例 。 应用的唯一更改将在包装和应用名称上。

我们的应用程序应命名为ecs-deployment

rootProject.name = 'ecs-deployment'

然后我们构建并运行我们的应用程序

gradle build
gradle bootRun

现在让我们对应用程序进行docker化。
首先,我们将创建一个驻留在src / main / docker上的Dockerfile。

FROM frolvlad/alpine-oraclejdk8
VOLUME /tmp
ADD ecs-deployment-1.0-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

然后,我们应该编辑gradle文件,以添加docker依赖项,docker插件和一个额外的gradle任务,以创建docker镜像。

buildscript {...dependencies {...classpath('se.transmode.gradle:gradle-docker:1.2')}
}...
apply plugin: 'docker'task buildDocker(type: Docker, dependsOn: build) {push = falseapplicationName = jar.baseNamedockerfile = file('src/main/docker/Dockerfile')
}

我们已经准备好构建我们的docker映像。

./gradlew build buildDocker

您还可以从新创建的映像运行docker应用程序。

docker run -p 8080:8080 -t com.gkatzioura.deployment/ecs-deployment:1.0-SNAPSHOT

第一步也是创建我们的ecr存储库

aws ecr create-repository  --repository-name ecs-deployment

然后让我们继续进行docker Registry身份验证 。

aws ecr get-login

然后运行输出中给出的命令。 登录尝试将成功,您已准备好推送图像。

首先标记图像以指定我们先前创建的存储库,然后执行docker push。

docker tag {imageid} {aws account id}.dkr.ecr.{aws region}.amazonaws.com/ecs-deployment:1.0-SNAPSHOT
docker push {aws account id}.dkr.ecr.{aws region}.amazonaws.com/ecs-deployment:1.0-SNAPSHOT

我们完成了! 我们的spring boot docker映像已部署在Amazon EC2容器注册表中。

您可以在github上找到源代码。

翻译自: https://www.javacodegeeks.com/2017/02/push-spring-boot-docker-images-ecr.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/351000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux信号处理机制

在Linux中,信号是进程间通讯的一种方式,它采用的是异步机制。当信号发送到某个进程中时,操作系统会中断该进程的正常流程,并进入相应的信号处理函数执行操作,完成后再回到中断的地方继续执行。 需要说明的是&#xff0…

pyspider爬虫框架

特点: 去重处理,结果监控,多进程处理,pyquery提取,错误重试,webUI管理,代码简洁,JS渲染 安装: anaconda里边没搜到pyspider,所以手动安装 查看pyspider的命令…

matlab subplot同时显示多幅图像

subplot是MATLAB中的函数。 使用方法:subplot(m,n,p)或者subplot(m n p)。 subplot是将多个图画到一个平面上的工具。其中,m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个…

matlab var求方差

对二维数组a b1 var(a); % 按默认来求 b2 var(a, 0); % 默认的公式(用N-1) c1 var(a, 1); % 另外的公式(用N) d1 var(a, 0, 1); % 对每列操作(用N-1) d2 var(a, 0, 2); % 对每行操作(…

1. git基础

1. 安装git sudo apt-get install git 2. 注册 git config --global user.name "Your Name" git config --global user.email "emailexample.com" 3. 创建版本库 mkdir learngit cd learngitgit init ##将这个目录初始化成…

国外persona用户画像_使用Mozilla Persona验证用户的指南

国外persona用户画像到目前为止,只有Twitter和Facebook身份验证,我决定将Mozilla Persona添加到我最新项目( 计算机 ,计算机生成的音乐)的列表中。 为什么? 我喜欢尝试新事物 存储密码是一个艰巨的过程&a…

每天一个linux命令(41):ps命令

Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。 要对进程进行监测和控制&#x…

module.js:549 throw err;

解决方法: 1、有可能是拼写错误 2、未明原因。 (1)删除 node_modules 文件夹 (2)cnpm cache clean,不过提示错误就用 cnpm cache clean --force (3)cnpm install 如果还是显示错误就…

matlab zeros初始化为0矩阵

zeros为创建一个值为零的数组; 如matrix1zeros(4,5);%4*5的矩阵,矩阵中每个元素都为0 matrix2zeros(4,5,3);%4*5*3的数组,数组中每个元素都为0 下面举一个将图像存到数组的例子 对RGB图片1.jpg,2.jpg;大小为700*500…

在一个Java版本上运行Eclipse IDE,但在另一个Java版本上运行

Java™开发人员 (和其他Java开发人员变体)的Eclipse IDE本身就是用于构建Java应用程序的Java应用程序。 这种关系可能会让您的大脑有些奇怪。 Eclipse IDE几乎完全用Java编写,需要Java运行时环境(JRE)才能运行。 JRE仅…

1.6.4 分离原则: 策略同机制分离,接口同引擎分离

在Unix之失的讨论中,我们谈到过X系统的设计者在设计中的基本抉择是实行“机制,而不是策略”这种做法——使X成为一个通用图形引擎,而将用户界面风格留给工具包或者系统的其它层次来决定。这一点得以证明是正确的,因为策略和机制是…

十、LINQ查询之延迟执行

一、IEnumerable 来实现延迟加载 转载于:https://www.cnblogs.com/fger/p/10644549.html

matlab中“存储空间不足,无法处理此命令”

关于matlab中“存储空间不足,无法处理此命令” 前一段在matlab中绘制三维图片以及处理三维大数据时,电脑上出现了“存储空间不足,无法处理此命令”的提示,我便到网上查找一些相关的解决方案,但是很可惜,在…

inline用法详解

(一)inline函数(摘自C Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联。 inline int min(int first, int secend) {/****/}; inline函数对编译器而言必须是可见的&…

matlab mat文件

如果想在matlab关闭后变量的值依然存在,就需要将变量保存在文件里,这里将变量保存为mat文件。 (1)将数组保存到mat文件 matrix1magic(4); save(matrix1.mat,matrix1); (2)需要使用mat文件时&#xff0c…

休眠日志:常见问题的提示和解决方案

如何通过适当的日志记录解决一些最常见的Hibernate问题? Hibernate的日志记录配置是一个重要但很少讨论的主题。 正确的配置可以帮助您在开发过程中发现潜在的问题,而错误的配置则可以在生产中导致严重的性能问题。 这就是我在新书《 Hibernate提示》中…

jdbc工具类2..0

一、创建外部文件 urljdbc:mysql:///qy66 useroot passwordroot drivercom.mysql.jdbc.Driver 二、创建工具类 package cn.zhouzhou;import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.net.URL; import java.sql.Con…

matlab 获取系统时间now,date

(1) 直接在命令窗输入now,返回数字,这个数字一般无意义;输入date,返回具体日期: >> now ans 7.3699e05 >> date ans 23-Oct-2017 (2)想要将时间精确…

bash shell脚本访问PostgreSQL的三种方式

bash脚本里有三种方式访问PostgreSQL数据库 但前提是要设置密码文件。当然对于有系统对应账户的数据库角色可以绕过密码登录环节,如 1$ sudo -u postgres psql或 12$ sudo su - postgres$ psql但是对于没有系统账户对应的数据库角色,如要使用脚本登录则…

linux-shell-命令总结

第一种方法执行: 第二种方法执行: 第三种方法执行: 第四种方法:执行 第三种和第四种方法都是在新的进程里执行程序 函数方法 方法就是一个命令,命令写在字符串的第一个位置 type:可以接外部命令&#xff0c…