2 回答
TA贡献1966条经验 获得超4个赞
终于...我解决了我的问题。这是我的改变:
1)我从pom.xml中删除了这个插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>maximko/${project.artifactId}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
并在 Dockerfile 中替换此代码。在 ENTRYPOINT 中,我将 mongodb 连接 uri 添加到我的数据库服务(这是主要更改!)
FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/spring-mongo-demo-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c "touch /app.jar"
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://db:27017/HotelDB","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
为了构建我的 app.jar 我使用了mavem package,但是如果没有生成你的 jar 文件,你应该使用mavem install
另外,在 application.properties 文件中,我指示spring.data.mongodb.host=db并捕获以下错误
Caused by: java.net.UnknownHostException: db
为了避免在构建 JAR 文件时出现此异常,我改为编写spring.data.mongodb.host=localhost
添加回答
举报