dockerfile-maven-plugin插件使用

一、 项目pom中设

192.168.10.10:5000 是docker的仓库地址,也就是registry的地址
1.第一种

 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <docker.repostory>192.168.10.10:5000</docker.repostory>
  </properties>
...
...
...
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <mainClass>com.yncjtz.SearchApplication</mainClass>
          <finalName>${project.build.finalName}</finalName>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>dockerfile-maven-plugin</artifactId>
        <version>1.4.10</version>
        <!--放开这块注释,则运行mvn deploy命令就会打包镜像-->
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <goal>build</goal>
              <goal>push</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <repository>${docker.repostory}/${project.artifactId}</repository>
          <buildArgs>
            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
          </buildArgs>
        </configuration>
      </plugin>
    </plugins>
  </build>

1.第二种

 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <docker.repostory>192.168.10.10:5000</docker.repostory>
  </properties>
...
...
...
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <!--main启动方法类-->
          <mainClass>com.yncjtz.AuthApplication</mainClass>
          <finalName>${project.name}</finalName>
        </configuration>
      </plugin>

      <!--docker maven插件-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>dockerfile-maven-plugin</artifactId>
        <version>1.4.10</version>
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <!--如果package时不想用docker打包,就注释掉这个goal-->
             <!-- <goal>build</goal>
              <goal>push</goal>-->
            </goals>
          </execution>
        </executions>
        <configuration>
          <repository>${docker.repostory}/${project.artifactId}</repository>
          <tag>latest</tag>
          <buildArgs>
            <!--提供参数向Dockerfile传递-->
            <JAR_FILE>target/${project.name}.jar</JAR_FILE>
          </buildArgs>
        </configuration>
      </plugin>
    </plugins>
  </build>

注意:

#下面两个必须相同才能打出可以build的jar包
 <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
 <finalName>${project.build.finalName}</finalName>

二、window系统设置

1.安装docker环境
2.配置环境变量

DOCKER_HOST
tcp://192.168.10.10:2375

如图
image.png

三、配置linux上的docker

1.开放远程Docker远程访问端口

#编辑docker.service文件
vim /lib/systemd/system/docker.service
#内容修改
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
image.png

2.重启docker服务

 systemctl  restart docker

四、编写dockerfile

Dockerfile

FROM anapsix/alpine-java
MAINTAINER kexianjun
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} /app/app.jar
WORKDIR /app
RUN bash -c 'touch /app.jar'
EXPOSE 21000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-jar", "./app.jar","--spring.profiles.active=pre"]

其他在idea中就可以打包构建上传了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容