Maven+Docker 部署

安装jdk8镜像

docker pull openjdk:8-jdk-alpine

maven插件推送方式

  1. 修改/etc/docker/daemon.json文件,加入hosts配置即可。 注意 使用本地docker构建,不要用的生产服务器上,这种方式容易被别人注入木马

    本地局域网 192.168.10.222
{

  "hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]

}
  1. 在settings.xml文件的同级目录创建settings-security.xml文件

    在cmd命令行中使用,在bash中特殊字符会出现转义问题
mvn --encrypt-master-password <password>
{4Cmy61mOMasHCreAdBngs40S7FJ8dFcD8MG9jCJKSNA=}
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
<master>{4Cmy61mOMasHCreAdBngs40S7FJ8dFcD8MG9jCJKSNA=}</master>
</settingsSecurity>
  1. 编辑settings.xml

    最后使用你的私有仓库访问密码生成服务密码,将生成的密码写入到settings.xml的
mvn --encrypt-password <password>
{RCeI2AmEXXgHmFttKbzhhXBLq/vQdczAluUl3Vd7tsg=}
<server>
<id>docker-aliyun</id>
<username>matosiki@163.com</username>
<password>{RCeI2AmEXXgHmFttKbzhhXBLq/vQdczAluUl3Vd7tsg=}</password>
<configuration>
<email>matosiki@163.com</email>
</configuration>
</server>


2. 重新加载配置文件,并重启docker

> systemctl daemon-reload

> systemctl restart docker

3. 验证,直接访问:

> curl 127.0.0.1:2375/info

## java项目

1. maven pom.xm 配置文件

​```xml
<build> <plugins> <!-- springboot打包 --> <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.9</version> <configuration> <!-- 镜像名称 --> <imageName>matosiki/springboot-docker-demo</imageName> <!-- docker远程服务器地址 --> <dockerHost>http://服务器IP:2375</dockerHost> <!-- Dockerfile文件存放目录 --> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
  1. 编写Dockerfile 文件
# Dockerfile

# 基于的镜像

FROM openjdk:8-jdk-alpine

# 安装字体,Captcha需要字体支持
RUN set -xe && apk --no-cache add ttf-dejavu fontconfig VOLUME /opt/tmp ADD projectname-1.0.0-SNAPSHOT.jar app.jar # -Djava.security.egd=file:/dev/./urandom 可解决tomcat可能启动慢的问题 # 具体可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 对外端口 EXPOSE 8080
  1. 编码运行

mvn clean package docker:build -Dmaven.test.skip=true

  1. 查看镜像

docker images

  1. 运行镜像,查看是否启动正常

docker run -d -p 8080:8080 matosiki/springboot-docker-demo

  1. 基于已有镜像运行 jar
docker run -d -p 1234:8080 -v /opt/docker/projectname-1.0.0-SNAPSHOT.jar:/usr/projectname-1.0.0-SNAPSHOT.jar --name SpringbootByJar openjdk:8-jdk-alpine java -jar /usr/projectname-1.0.0-SNAPSHOT.jar

Maven+Docker 部署的更多相关文章

  1. Maven Docker部署

    镜像构建方式 docker-maven-plugin插件构建docker镜像有两种方式: 1. 指定参数,由docker-maven-plugin插件根据这些参数来制作镜像: 2. 指定Dockerf ...

  2. Docker化tomcat 并且使用maven热部署

    今天没事干 就把自己的tomcat  docker化并且使用maven实现热部署 特别记录一下~ 1.首先进行centos7的安装 就不在记录了 注意的是最好使用centos7 因为docker 依赖 ...

  3. 转 使用Docker部署 spring-boot maven应用

    转自:https://blog.csdn.net/u011699931/article/details/70226504/ 使用Docker部署 spring-boot maven应用 部署过程分为以 ...

  4. Jenkins+Docker部署Maven聚合工程

    这几天,把公司的预发布环境,改成docker部署,遇到了一些坑,有jenkins里的部署脚本的问题,也有harbor仓库的问题,还有docker远程访问的问题,还有DooD....一堆坑 Jenkin ...

  5. Spring Boot 2.0(四):使用 Docker 部署 Spring Boot

    Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下. 首先构建一个简单的 Spring Boot 项目, ...

  6. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

  7. Spring Boot2.0:使用Docker部署Spring Boot

    一.Spring Boot项目添加 Docker 支持1.在pom.xml中添加 Docker 构建插件 <plugins> <!-- Docker maven plugin --& ...

  8. (转)Spring Boot 2 (四):使用 Docker 部署 Spring Boot

    http://www.ityouknow.com/springboot/2018/03/19/spring-boot-docker.html Docker 技术发展为微服务落地提供了更加便利的环境,使 ...

  9. 使用docker部署springboot

    首先创建一个简单的springboot web项目 创建一个 DockerController,在其中有一个index()方法,访问时返回:Hello Docker! @RestController ...

随机推荐

  1. 【Docker】:使用docker安装redis,挂载外部配置和数据

    普通安装 1.拉取镜像,redis:4.0 docker pull redis:4.0 2.创建redis容器名"redistest1",并开启持久化 docker run -d ...

  2. 剑指offer53:表示数值的字符串,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是

    1 题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数).例如,字符串"+100","5e2","-123","3 ...

  3. Xpath解析

    import requests from lxml import etree url = 'https://www.huawei.com/cn/?ic_medium=direct&ic_sou ...

  4. 【Python | opencv+PIL】常见操作(创建、添加帧、绘图、读取等)的效率对比及其优化

    一.背景 本人准备用python做图像和视频编辑的操作,却发现opencv和PIL的效率并不是很理想,并且同样的需求有多种不同的写法并有着不同的效率.见全网并无较完整的效率对比文档,遂决定自己丰衣足食 ...

  5. 使用Duilib开发Windows软件(4)——消息传递

    云信Duilib中没有窗体类的函数可以用来直接收取到所有控件的事件,每个控件都可以单独设置自己的事件处理函数,一般在InitWindow方法中初始化各个控件的事件处理函数. 每个控件都有许多形如Att ...

  6. (三)Activiti之第一个程序以及Activiti插件的使用和Activiti表的解释

    一.案例 1.1 建立Activiti Diagram图 new -> activiti ->Activiti Diagram,创建一个HelloWorld文件,后缀自动为bpmn,如下图 ...

  7. 在论坛中出现的比较难的sql问题:4(row_number函数+子查询 分组连续编号问题)

    原文:在论坛中出现的比较难的sql问题:4(row_number函数+子查询 分组连续编号问题) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 求一查询语句 http: ...

  8. Django入门第一步:构建一个简单的Django项目

    Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...

  9. ArrayList和CopyOnWriteArrayList(转载)

    这篇文章的目的如下: 了解一下ArrayList和CopyOnWriteArrayList的增删改查实现原理 看看为什么说ArrayList查询快而增删慢? CopyOnWriteArrayList为 ...

  10. C语言程序经过编译链接后形成二进制映像文件的组成

    C语言程序经过编译链接后形成二进制映像文件由栈,堆,数据段,代码段组成,其中数据段又分为:只读数据段,已经初始化读写数据段,未初始化数据段(BSS段).如下图所示: 1.栈区(stack):由编译器自 ...