我正在尝试获得有关Docker和Jenkins的经验,并希望使用这两种技术来部署Spring Boot服务器。但是似乎我在Dockerfile中错误地指定了实际构建:
FROM java:8
EXPOSE 8080
ARG mongoConnection
ARG jwtSecret
ENV MONGODB_CONNECTION=$mongoConnection
ENV JWT_SECRET=$jwtSecret
COPY build/libs/test-server.jar test-server.jar
ENTRYPOINT ["java", "-jar", "test-server.jar"]
当我使用以下命令通过Jenkins构建容器时...
./gradlew cleanBuild
docker build --build-arg mongoConnection=$MONGODB_CONNECTION --build-arg jwtSecret=$JWT_SECRET -t test-server .
docker run -d -p 8080:8080 --name test-server test-server
... docker似乎找不到.jar文件。我将如何正确设置工作目录,以便docker能够部署服务器?还是我的方法完全错误?
这是确切的错误:
复制失败:统计 /var/lib/docker/tmp/docker-builder542655905/build/libs/test-server.jar: 没有这样的文件或目录
感谢您的帮助!
编辑:原来由于./gradlew cleanBuild命令不正确,所以未创建.jar文件。相反,它应该是gradle clean build
。当您始终仅使用IntelliJ进行构建时,就会发生这种情况。