Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器
我们知道,docker能实现应用打包隔离,实现快速部署和迁移。如果我们开发应用使用了spring cloud + spring boot架构,那么,通过docker-maven-plugin实现快速构建镜像并发布到远程docker服务器会非常方便。相关步骤参考如下:
step1、开启docker服务器的tcp管理端口,这里以2375为例进行说明。具体的配置过程请参考另一篇博客:
https://www.cnblogs.com/funnyboy0128/p/9983779.html
step2、在本地配置环境变量:DOCKER_HOST,如下:
step3、在应用中src/main下新建docker文件夹,并编写Dockerfile和runboot.sh文件
Dockerfile主要用来构建镜像,参考示例如下:
FROM java:8
MAINTAINER funnyboy
VOLUME /tmp
RUN mkdir /app
ADD docker-app-0.0.1-SNAPSHOT.jar /app/app.jar
ADD runboot.sh /app/
RUN bash -c 'touch /app/app.jar'
WORKDIR /app
RUN chmod a+x runboot.sh
EXPOSE 5678 CMD /app/runboot.sh
runboot.sh为应用启动脚本,参考如下:
java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar
step4、在pom中添加docker-maven-plugin插件配置,关键代码如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
<!-- 镜像名称 -->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<!-- 指定Dockerfile 文件的位置 -->
<dockerDirectory>src/main/docker</dockerDirectory>
<!-- 指定哪些文件需要和 Dockerfile放在一起,一般jar包需要 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<docker.image.prefix>funnyboy</docker.image.prefix>
<project.artifactId>docker-app</project.artifactId>
<project.build.finalName>app</project.build.finalName>
</properties>
step5、本地执行构建:mvn clean package docker:build
step6、远程登陆服务器,查看docker镜像:docker images
经过上述步骤,就已经成功实现了构建spring cloud+spring boot应用,并将镜像发布到远程docker服务器。
Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器的更多相关文章
- maven(17)-自动发布到远程linux服务器
发布方式 手工方式:需要做一系列的工作,包括打WAR包,上传到服务器,重启服务器,删除旧文件等 自动方式:一条命令完成以上所有过程 服务器环境 centos7.3和tomcat8,关于cento ...
- Docker教程:镜像构建和自动镜像构建dockerfile
http://blog.csdn.net/pipisorry/article/details/50805379 Docker透过Dockerfile来记录建立Container映象文件的每一个步骤,可 ...
- CentOS7下Docker中构建可以自动发布到项目的Tomcat容器
步骤 下载镜像 搜索相应的镜像文件:docker search 'tomcat' 如下 下载镜像:docker pull tomcat:7,如下图 PS:后面的数字代表tomcat的版本,可以自己选择 ...
- eclipse maven plugin 插件 安装 和 配置
离线插件 点击下载离线安装包:eclipse-maven-plugin.zip ( for eclipse helios or higher ) .解压缩到任意目录(如这里的plugins目录): ...
- Maven plugin插件---appassembler-maven-plugin快速配置
使用appassembler-maven-plugin 打包自定义目录 1.Pom中添加 <plugin> <artifactId>maven-resources-plugin ...
- Maven plugin 插件
1.maven-surefire-plugin简介: Maven在构件时执行到测试的生命周期时,会使用maven-surefire-plugin运行测试用例,背后执行的Junit或者TestNG的测试 ...
- 使用Maven插件快捷打包发布远程Docker镜像 dockerfile-maven-plugin
1.开放远程Docker远程访问端口 # vim /lib/systemd/system/docker.service ExecStart=/usr/bin/dockerd -H tcp://0.0. ...
- 一键部署 Spring Boot 到远程 Docker 容器,就是这么秀!
不知道各位小伙伴在生产环境都是怎么部署 Spring Boot 的,打成 jar 直接一键运行?打成 war 扔到 Tomcat 容器中运行?不过据松哥了解,容器化部署应该是目前的主流方案. 不同于传 ...
- 使用远程Docker进行集成测试
目录 需求背景 使用docker进行环境搭建 以中心化的docker server改进集成测试 Docker Server远程链接配置 Testcontainers 框架 Testcontainers ...
随机推荐
- solr 学习笔记1
创建核心(帮助: solr create_core -help) 例子: solr create_core -c mjj_core -d /var/solr/mjj_config (-c 是核心名称 ...
- HTML5最佳实践web app
简介 本文重点关注如何充分利用HTML5和CSS让web app运行更加流畅. Tip 1: 使用web storage代替cookie cookie最大的缺陷是在每一次HTTP请求中都会携带所有符合 ...
- 网页设计(CSS&JS)
实验一 简单静态网页设计 一. 实验目的: 复习使用记事本编辑网页的方法. 熟悉不同表单控件类型的应用. 练习使用记事本在网页中添加表单与表单元素. 二. 实验内容: 根据提供的素材设计在线调查问卷 ...
- Linux新加磁盘挂载和重启自动挂载
提示两点:*新加的硬盘需要重启服务器fdisk -l才能看到*下面操作要用root账户大概是这样的,查看-分区-格式化-挂载-重启自动挂载1.加硬盘后重启服务器查看[root@test199 ~]# ...
- PostgreSql 使用dblink跨库
此篇介绍下psql下dblink的使用方式,帮助自己记录以备后需.dblink是psql下的扩展功能,可以实现在一个数据库中远程操作另外一个数据库,是实现跨库的一种方法.下面步入正文. 安装dblin ...
- react-router详细解释
react-router的理解 react的一个插件库,专门用来实现一个SPA应用(单页Web应用(single page web application,SPA)整个应用只有一个完整的页面,点击页面 ...
- SUSE12SP3-Mycat(3)Server.xml配置详解
简介 server.xml 几乎保存了所有 mycat 需要的系统配置信息.其在代码内直接的映射类为 SystemConfig 类. user 标签 <user name="test& ...
- Fork/Join框架详解
Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架.Fork/Join框架要完成两件事情: 1.任务分 ...
- PHP全栈学习笔记3
trim()函数,用于去除字符串首尾空格和特殊字符 返回的是去掉的空格和特殊字符后的字符串 string trim(string str [,string charlist]); str 要操作的字符 ...
- cassandra读源码---Streaming
前言 cassandra的很多过程需要网络传输模块,需要在各个节点直接发送文件.包括加入节点,删除节点引起的不同节点的负责ring环的key值发生了变化,导致sstable需要在各个节点中移动. 整体 ...