我正在尝试从一个简单的 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 镜像方面存在一些根本性的误解。主要是:
- 从终端构建时,Docker 如何知道如何命名镜像?
- 使用 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/