首页 文章

从Spring Boot Jar构建Docker镜像

提问于
浏览
1

我正在尝试使用 spring 启动脂肪 jar 来学习使用Docker启动和运行的教程 . 我安装了所有东西,可以从Docker Hub运行Hello World示例 .

我使用Maven创建了名为 predictive-text-tree-0.0.1-SNAPSHOT.jar 的胖 jar ,并使用以下作为我的dokerfile.docker:

FROM java:8
MAINTAINER ltocode
EXPOSE 8080
ADD predictive-text-tree-0.0.1-SNAPSHOT.jar /data/predictive-text-tree-0.0.1-SNAPSHOT.jar
CMD java -jar /data/textpredict.jar

我在服务器上有jar和docker文件,当我运行docker build命令时,我得到以下内容:

〜/ build #docker build -t predictive-text-tree-0.0.1-SNAPSHOT.jar t的无效参数“predictive-text-tree-0.0.1-SNAPSHOT.jar”:解析引用时出错:“预测文本-tree-0.0.1-SNAPSHOT.jar“不是有效的存储库/标记请参阅'docker build --help' .

如何从胖 jar 中构建泊坞窗图像?

2 回答

  • 0

    您在构建命令中给出了不正确的参数 . -t 用于标记结果图像的参数 . 这意味着, -t 后面应该是图像名称,而不是jar文件 . 您可以在docker build document中找到更多详细信息 .

  • 2

    为了更优雅的方式:在过去,docker-maven-plugin对我来说效果最好,潜行预览在这里:

    <plugin>
        <groupId>com.spotify</groupId>
        <artifactId>docker-maven-plugin</artifactId>
        <version>VERSION GOES HERE</version>
        <configuration>
            <imageName>example</imageName>
            <baseImage>java:8</baseImage>
            <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]   </entryPoint>
            <!-- copy the service's jar file from target into the root directory of the image --> 
            <resources>
                <resource>
                    <targetPath>/</targetPath>
                    <directory>${project.build.directory}</directory>
                    <include>${project.build.finalName}.jar</include>
                </resource>
            </resources>
        </configuration>
    </plugin>
    

    除了能够使用您的项目构建它之外,还可以将图像直接推送到docker注册表:

    mvn ... docker:build -DpushImageTags -DdockerImageTag=latest -DdockerImageTag=tag

相关问题