Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 构建Spring Boot应用程序的Docker映像文件_Maven_Spring Boot_Docker_Docker Toolbox_Dockerfile Maven Plugin - Fatal编程技术网

Maven 构建Spring Boot应用程序的Docker映像文件

Maven 构建Spring Boot应用程序的Docker映像文件,maven,spring-boot,docker,docker-toolbox,dockerfile-maven-plugin,Maven,Spring Boot,Docker,Docker Toolbox,Dockerfile Maven Plugin,我正试图使用dockerfile maven插件为我的spring boot maven项目构建一个docker映像。我在Windows7上使用Docker工具箱,它运行良好 我得到以下错误: 无法加载Google应用程序默认凭据 java.io.IOException:应用程序默认凭据不可用 可用。如果在谷歌计算引擎中运行,它们是可用的。 否则,环境变量GOOGLE\u APPLICATION\u CREDENTIALS 必须指向定义凭据的文件来定义。看见 了解更多信息 Pom.XML构建 &

我正试图使用dockerfile maven插件为我的spring boot maven项目构建一个docker映像。我在Windows7上使用Docker工具箱,它运行良好

我得到以下错误:

无法加载Google应用程序默认凭据 java.io.IOException:应用程序默认凭据不可用 可用。如果在谷歌计算引擎中运行,它们是可用的。 否则,环境变量GOOGLE\u APPLICATION\u CREDENTIALS 必须指向定义凭据的文件来定义。看见 了解更多信息

Pom.XML构建

<build>
    <plugins>
        <plugin>
          <groupId>com.spotify</groupId>
          <artifactId>dockerfile-maven-plugin</artifactId>
          <version>1.4.10</version>
          <executions>
            <execution>
              <id>default</id>
              <goals>
                <goal>build</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
             <serverId>docker-hub</serverId>
            <repository>${project.artifactId}</repository>
            <tag>${project.version}</tag>
            <buildArgs>
              <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
            </buildArgs>
          </configuration>
        </plugin>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                  <goals>
                    <goal>repackage</goal>
                  </goals>
                </execution>
          </executions>
             <configuration>
                <outputDirectory>D:\spring\MicroServiceOutput</outputDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

com.spotify
dockerfile maven插件
1.4.10
违约
建造
码头中心
${project.artifactId}
${project.version}
target/${project.build.finalName}.jar
org.springframework.boot
springbootmaven插件
重新包装
D:\spring\MicroServiceOutput
我无法理解为什么我们需要google default credential来构建本地映像。请帮助我,因为我是Docker World的新手。

这似乎是一个插件,默认情况下,插件将googleContainerRegistryEnabled标志设置为true,因此您必须将该标志更改为false,请尝试以下操作:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.RC2</spring-cloud.version>
    <docker.image.prefix>prefix</docker.image.prefix>
    <docker.image.name>${project.artifactId}</docker.image.name>
    <docker.image.tag>${project.version}</docker.image.tag>
    <docker.file>Dockerfile</docker.file>
</properties>
        ...
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>dockerfile-maven-plugin</artifactId>
            <version>1.4.10</version>
            <configuration>
                <googleContainerRegistryEnabled>false</googleContainerRegistryEnabled>
                <repository>${docker.image.prefix}/${docker.image.name}</repository>
                <tag>${docker.image.tag}</tag>
                <dockerfile>${docker.file}</dockerfile>
            </configuration>
            <executions>
                <execution>
                    <id>build</id>
                    <goals>
                        <goal>build</goal>
                        <goal>tag</goal>
                    </goals>
                </execution>
                <execution>
                    <id>push</id>
                    <goals>
                        <goal>push</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

UTF-8
UTF-8
1.8
格林威治
前缀
${project.artifactId}
${project.version}
Dockerfile
...
com.spotify
dockerfile maven插件
1.4.10
假的
${docker.image.prefix}/${docker.image.name}
${docker.image.tag}
${docker.file}
建造
建造
标签
推
推

这可能会有帮助,因为它没有创建Docker文件…我已经用一些细节更新了答案,mvn clean install fabric8:buildGetting'不能包含项目工件:'错误。。