zoukankan      html  css  js  c++  java
  • 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主要用来构建镜像,参考示例如下:

     1 FROM java:8
     2 MAINTAINER funnyboy
     3 VOLUME /tmp
     4 RUN mkdir /app
     5 ADD docker-app-0.0.1-SNAPSHOT.jar /app/app.jar
     6 ADD runboot.sh /app/
     7 RUN bash -c 'touch /app/app.jar'
     8 WORKDIR /app
     9 RUN chmod a+x runboot.sh
    10 EXPOSE 5678
    11 
    12 CMD /app/runboot.sh

    runboot.sh为应用启动脚本,参考如下:

    1 java -Djava.security.egd=file:/dev/./urandom -jar /app/app.jar

     

    step4、在pom中添加docker-maven-plugin插件配置,关键代码如下:

     1 <build> 
     2     <plugins>
     3            <plugin>
     4                <groupId>org.springframework.boot</groupId>
     5                <artifactId>spring-boot-maven-plugin</artifactId>
     6            </plugin>
     7            <plugin>
     8                <groupId>com.spotify</groupId>
     9                <artifactId>docker-maven-plugin</artifactId>
    10                <version>0.4.3</version>
    11                <configuration>
    12                    <!-- 镜像名称 -->
    13                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
    14                    <!-- 指定Dockerfile 文件的位置 -->
    15                    <dockerDirectory>src/main/docker</dockerDirectory>
    16                    <!-- 指定哪些文件需要和 Dockerfile放在一起,一般jar包需要  -->
    17                    <resources>
    18                        <resource>
    19                            <targetPath>/</targetPath>
    20                            <directory>${project.build.directory}</directory>
    21                            <include>${project.build.finalName}.jar</include>
    22                        </resource>
    23                    </resources>
    24                </configuration>
    25            </plugin>
    26        </plugins>
    27 </build>
    28 <properties>
    29 <docker.image.prefix>funnyboy</docker.image.prefix>
    30 <project.artifactId>docker-app</project.artifactId>
    31 <project.build.finalName>app</project.build.finalName>
    32 </properties>

    step5、本地执行构建:mvn clean package docker:build

    step6、远程登陆服务器,查看docker镜像:docker images

    经过上述步骤,就已经成功实现了构建spring cloud+spring boot应用,并将镜像发布到远程docker服务器。

  • 相关阅读:
    linux常用命令(二)文件上传下载及软件安装
    linux常用命令(一)linux开关机、重启以及文本界面与图形界面互换
    HTTP协议(一)基本概念、HTTP方法、HTTP状态码
    Martin Fowler 分层测试概念博文分享
    网络路由分析
    nginx 常见错误释义
    java解决共享资源竞争
    python操作excel及json
    一个简单的用python 实现系统登录的http接口服务实例
    Redis持久化之RDB&&AOF的区别
  • 原文地址:https://www.cnblogs.com/funnyboy0128/p/9986300.html
Copyright © 2011-2022 走看看