windows上项目打包自动编译为docker镜像到远程linux服务器

一,pom文件:

<properties>中增加 <docker.image.prefix>springboot</docker.image.prefix> (本机测试springboot为随意取名)

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <docker.image.prefix>springboot</docker.image.prefix>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>    

加入maven插件“docker-maven-plugin”

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!--加入maven插件“docker-maven-plugin”-->

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <executions>
                    <!--执行 mvn package 时 自动 执行 mvn docker:build-->
                    <execution>
                        <id>build-image</id>
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerHost> http://192.168.163.129:2375</dockerHost>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

        </plugins>
    </build>

二,Dockerfile:(ADD行为项目打包生成的jar包)

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD eurekademo-0.0.1-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" ]

三,在linux服务器上装好docker,我的linux版本为centos7,这里不建议使用#yum install docker方式安装,因为这种方式安装的版本比较旧,而且在配置远程api时要好多错误,建议使用方式

#curl -fsSL https://get.docker.com/ | sh或#yum install docker-engine,这里以17.0.3-ce版本为例,使用

#docker version命令即可验证是否安装成功,接下来要想在windows中操作远程linux中的docker,那前提是必须

开启docker远程API,修改docker配置文件#vi /usr/lib/systemd/system/docker.service ,进入编辑模式后,将ExecStart这一行后面加上 -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,改完后如下所示

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock ,这里就写4个0,你可别改成自己的ip哦,保存后退出,重新加载配置文件#systemctl daemon-reload ,启动#systemctl restart docker.service ,

输入#netstat -anp|grep 2375 显示docker正在监听2375端口,输入#curl 127.0.0.1:2375/info 显示一大堆信息,证明远程api就弄好了

iptables放行2375端口 (否则会报连接超时)
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 2375 -j ACCEPT

四,在windows系统环境变量中新建DOCKER_HOST,值为tcp://http://192.168.163.129:2375,(你改成你自己的docker服务器ip地址)

五,使用mvn clean package docker:build -DskipTests 打包并生成镜像。

原文地址:https://www.cnblogs.com/a1260700062/p/9923508.html

时间: 2024-11-05 18:34:20

windows上项目打包自动编译为docker镜像到远程linux服务器的相关文章

Windows系统下Ant自动编译打包并签名Android应用——实践篇

1.背景 项目进行到一定程度了,每次发布前,产品要求打包测试,都需要手动从eclipse中导出签名APK,很是麻烦.于是想起了之前探索过的Ant自动签名打包.查看自己之前写的博客Windows系统下Ant自动编译打包并签名Android应用--探索篇,边动手边复习.但是后面遇到了一大串的问题... 2.问题解决过程 1).libs库中的第三方包 如果项目只是引用了第三方jar包,只要将jar包放入项目libs目录下就可以了,ant编译的时候会自动把第三方jar包加入进去的,没有任何问题. 2).

Windows服务项目打包成安装包(Windows服务)-----------VS2017项目程序打包成.msi或者.exe

VS2017项目程序打包成.msi或者.exe Windows服务项目使用VS2017项目程序打包成.msi或者.exe安装包 项目打包成安装包(Windows服务) 1.安装打包插件:Microsoft Visual Studio 2017 Installer Projects 打开vs2017 ,选择 工具 --> 扩展和更新 --> 联机,搜索Microsoft Visual Studio 2017 Installer Projects,进行安装.安装好以后,重启vs2017 2.新建程

将 ASP.NET 5 应用作为 docker 镜像发布 (Linux版)

将 ASP.NET 5 应用作为 docker 镜像发布 (Linux版)? 提示 本文更新时间:2015年12月20日. 注解 如果你需要将 docker 镜像运行在Windows平台,或者使用在 Visual Studio 2015 上,请看稍后的一片博文(目前未发布) 将 ASP.NET 5 应用作为 docker 镜像发布 (Windows版) 创建 ASP.NET 5 项目? 首先,你需要一个已经完成的 ASP.NET 5 应用,如果还没有的话,可以参考 在 Mac OS 上创建的 A

Idea 2019.2 (Ultimate Edition) 部署项目到远程Linux服务器tomcat 详解

前言:之前做项目,一直都是把本地的源码打成war包上传到远程服务器tomcat/webapps下.每次都要重新打成war进行项目的部署,感觉特别繁琐. 步骤: 1.环境配置 前提:保证在远程linux服务器上安装好tomcat. 2.Linux服务器tomcat配置 (1)在Linux上找到我们安装的tomcat的目录: (2)在tomcat下的bin中找到catalina.sh,进行远程发布需要在catalina.sh这个启动脚本中增加一些配置: 编辑catalina.sh文件: 按inset

windows使用xshell免密码登陆远程Linux服务器教程

windows使用xshell免密码登陆远程Linux服务器教程 1.使用xshell自带工具生成私钥 步骤: 2.在linux服务器端生成密钥 1.生成服务器端密钥命令 #ssh-keygen (保存位置默认,全部回车即可.) 3.复制本地密钥到远程linux服务器端 1.复制本地密钥到远程linux服务器端 2.把本地密钥命名为authorized_keys #cat 本地密钥 >> authorized_keys 3.放在~/.ssh/下且权限为600. #chmod 600 autho

Linux下不借助工具实现远程linux服务器上传下载文件

# Linux下不借助工具实现远程linux服务器上传下载文件 ## 简介 - Linux下自带ssh工具,可以实现远程Linux服务器的功能- Linux下自带scp工具,可以实现文件传输功能 ## 登录服务器 - `ssh [email protected]` 登录服务器```PC:~$ ssh [email protected][email protected]'s password: ``` ## 文件传输 - 下载文件- `scp [email protected]:/data/log

将NodeJS项目打包,编译成跨平台的可执行文件

引言 我们都知道nodejs的项目本身是没办法编译成二进制可执行文件的,这给我们很多的业务场景造成了一些问题,比如要给客户演示程序的时候,可能还得安装node环境,然后在安装一堆的依赖包,这还必须是网络环境较好的情况下,而有时候,一般企业如果安全看的特别重,限制在局域网内访问互联网,那么连包都没办法安装,显然对于你和对于客户都是不友好的情景. 还有一种情况:如果我们演示项目时,把代码交给对方部署,我们自己也不放心啊:Nodejs代码是明文JS代码,代码泄露怎么办?当然,防代码泄露可以用JSham

在windows上安装ASP.NET Core 的 Docker 映像

技术参考: https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-2.2 https://docs.docker.com/docker-for-windows/install/ 系统要求Windows 10 64位:专业版,企业版或教育版(内部版本15063或更高版本).必须启用Hyper-V和Containers Windows

教你打包自己的专属docker镜像

前序 什么是docker? Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 具体关于Docker更多的介绍请自行网上查阅 一.Docker环境的搭建 Docker基于Linux系统为基础的,所以我们先要准备一台Linux系统,这里以CentOS6.8为例 1.检查系统是否可以上网 # ping www.baidu.com 2.安装epel