首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用弹簧启动罐塑造码头形象

用弹簧启动罐塑造码头形象
EN

Stack Overflow用户
提问于 2016-10-03 18:10:14
回答 3查看 1.4K关注 0票数 1

我正试图遵循一个教程,如何使用弹簧启动脂肪罐与Docker一起起床和运行。我已经安装了所有的东西,可以从码头集线器运行一个Hello示例。

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

代码语言:javascript
复制
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命令时,会得到以下内容:

~/构建#码头构建-t预测-文本树-0.0.1-SNAPSHOT.jar 无效的参数“预测-文本-树-0.0.1-SNAPSHOT.jar”用于t:错误解析引用:“预测-文本-树-0.0.1-SNAPSHOT.jar”不是一个有效的存储库/标记(参见'docker build -帮助‘)。

我如何从一个胖罐子中建立码头形象?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-03 18:23:50

您在构建命令中提供了不正确的参数。用于标记结果图像的-t参数。这意味着,-t后面应该是图像名,而不是jar文件。您可以在码头建设文件中找到更多细节。

票数 2
EN

Stack Overflow用户

发布于 2016-10-03 18:18:48

对于一个更优雅的方式:在过去,docker-maven-插件最适合我,下面是预览:

代码语言:javascript
复制
<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>

除了能够正确构建项目之外,还可以将映像直接推送到码头注册中心:

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

票数 1
EN

Stack Overflow用户

发布于 2020-05-03 13:26:03

我也有过同样的情况。我有一个示例spring引导应用程序,它使用嵌入式H2数据库。我做了一个Dockerfile,如下所示。

代码语言:javascript
复制
FROM openjdk:8
EXPOSE 8081
ADD target/book-rest-api-reactjs-0.0.1-SNAPSHOT.jar book-rest-api-reactjs-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java","-jar","/book-rest-api-reactjs-0.0.1-SNAPSHOT.jar"] 

然后使用以下命令构建对接器。

docker构建-t图书-rest-api-reactjs.jar。

接下来,使用下面的命令列出图像,以确保图像在本地可用。

码头形象ls

然后使用下面的命令运行图像。

docker运行-p 9090:8081图书-rest-api-reactjs.jar

现在,当我访问端点(http://localhost:9090/rest/books)时,我能够得到结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39837835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档