本地idea连接虚拟机linux中的docker进行打包镜像上传--maven的dockerfile-maven-plugin插件

  1. 文件在D:\E\学习文档子目录压缩\专项进阶,如ngnix,webservice,linux,redis等\docker
  2. 项目名必须是英文,-,.,_,这些数字,idea需要管理员运行,因为idea控制台mvn命令需要管理员权限才能运行(idea控制台运行maven命令需配置环境变量)
  3. 改linux中的Docker服务文件,使用2375 进行非加密通信,然后加载重启

     3.1

#修改Docker服务文件

vi  /lib/systemd/system/docker.service

# 通常使用端口2375与守护进程进行非加密通信,使用端口2376与守护进程进行加密通信。

#修改ExecStart行,添加如下配置

 -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

   3.2 重新加载配置文件,重启服务

重新加载配置文件

systemctl daemon-reload

重启服务

systemctl restart docker.service

       3.3 验证是否成功修改,此步奏非必须,只要最后一步本地浏览器可以访问http://ip:2375/version就行

验证是否开启成功

查看端口是否开启

netstat -antp | grep dockerd  #如果找不到netstat命令,使用yum install net-tools安装

[root@administrator ~]# netstat -antp | grep dockerd

tcp6       0      0 :::2375                 :::*                    LISTEN      4514/dockerd  

直接curl看是否生效,测试通过localhost是否能使用Docker Engine API

curl http://127.0.0.1:2375/info

curl http://localhost:2375/version

浏览器访问:http://ip:2375/version测试远程能否通过主机IP使用Docker Engine API

             

  1. 环境变量中配置DOCKER_HOST,和添加到path

   DOCKER_HOST,tcp://192.168.174.129:2375

  1. idea中修改一下idea --> settting --> maven --> runner ---> Environment variables如下图

          DOCKER_HOST=tcp://192.168.174.129:2375  

  1. 在项目目录下新建Dockerfile文件,pom文件加入插件依赖
    1.  在项目目录下新建Dockerfile文件(和pom.xml文件同一级)

       下图为Dockerfile文件内容,Dockerfile 中JRA_FILE就是pom.xml文件中的JRA_FIL

FROM  adoptopenjdk/openjdk11:ubi
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

      5.2   xxx改成公司的就可以,下面为pom.xml文件的dockerfile-maven-plugin插件(finalName标签内容需要改成本项目的如果父包一样docker.image.prefix标签内容可不改)

<artifactId>xxx-api-gateway</artifactId>

    <properties>

        <docker.image.prefix>xxxcloud</docker.image.prefix>

    </properties>

<dependencies>

<build>
    <finalName>alibaba-cloud-gateway</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>

            <configuration>
                <fork>true</fork>
                <addResources>true</addResources>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.4.13</version>

            <configuration>
                <repository>${docker.image.prefix}/${project.artifactId}</repository>
                <buildArgs>
                    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                </buildArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

  1. 重启idea后cd到pom.xml文件的父目录后在idea控制台执行打包mvn命令

   mvn install -Dmaven.test.skip=true dockerfile:build 或

   mvn clean install -Dmaven.test.skip=true dockerfile:build

  1. 查看docker所在的linux上是否已经有镜像

  1. 如果java -jar或者这个镜像运行容器运行时包找不到主方法

     如果报main找不到错误,将下面标签加入maven的pom文件中就可以了

no main manifest attribute, in /app.jar

xxx.jar中没有主清单属性

<executions>
    <execution>
        <goals>
            <goal>repackage</goal>
        </goals>
    </execution>
</executions>

  

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值