java - 如何从 Spring Boot jar 构建 Docker 镜像

标签 java spring docker spring-boot

我正在尝试从一个简单的 Spring RESTful Web 服务 jar 构建 Docker 镜像。

为此,我指定了以下 Dockerfile:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

我正在尝试从我的 IDEA cli 中“使用 Maven 构建 Docker 镜像”,如说明 here 中所述。

./mvnw install dockerfile:build

不幸的是,这会引发异常:

Could not build image: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: java.io.IOException: Permission denied

由于我不知道如何解决这个问题,我尝试使用 docker 从终端构建图像命令:

$ docker build nordic/demo

它创建了图像,但名称和标签为 <none> 。从 docker documentations 阅读相关内容但对此只字未提。

我是 Docker 新手,所以我确信在如何构建 Docker 镜像方面存在一些根本性的误解。主要是:

  1. 从终端构建时,Docker 如何知道如何命名镜像?
  2. 使用 Spotify 插件构建时,为什么/需要什么权限才能使用该插件(在构建之前登录 dockerhub 没有帮助)?

感谢您的指点或解释!

最佳答案

使用下面的示例命令在/var/run/docker 中为 your_own_username 设置权限而不是 root,然后尝试一下。

sudo chown -R root:your_own_username/var/run/docker

关于java - 如何从 Spring Boot jar 构建 Docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49476436/

相关文章:

docker - 如何在 docker restart 时重新启动容器(--restart=true 不起作用)?

java - 正确高效的编程风格

java - 如何使用 Spring 框架遍历 JSP 中的列表

mysql - Spring-Boot,无法使用spring-data JPA在MySql中保存unicode字符串

Spring Boot Kafka Streams - 绑定(bind)问题

docker - 使用唯一的IP地址实例化多个docker-compose管道

启动fork时出现Maven错误,请检查日志中的输出

java - 使用 Android Chrome 浏览器在文本字段中输入内容后单击按钮

java - 套接字似乎在按下按钮之间关闭,如何保持它打开? JavaFX

java - 如何在缺少父目录的情况下创建新文件?