这是我的源代码https://github.com/donhuvy/springboot-docker。我跟随指南在教程视频https://www.youtube.com/watch?v=7BCtc9cAS6o。文件Dockerfile
# syntax=docker/dockerfile:1
#Which "official Java image" ?
FROM openjdk:oraclelinux8
#working directory
WORKDIR /app
#copy from your Host(PC, laptop) to container
COPY .mvn/ .mvn
COPY mvnw pom.xml ./
#Run this inside the image
RUN ./mvnw dependency:go-offline
COPY src ./src
#run inside container
CMD [ "mvnw", "spring-boot:run" ]
日志
C:\Users\donhu>docker pull donhuvy/springboot-docker:v1.0.0
v1.0.0: Pulling from donhuvy/springboot-docker
e54b73e95ef3: Pull complete
e6e62647f09f: Pull complete
da8e06a8884e: Pull complete
d8cbf9b4e6de: Pull complete
9971eb650313: Pull complete
366b24bf882f: Pull complete
35b5c085babf: Pull complete
b51a76bbfa65: Pull complete
Digest: sha256:f637c16c3b2a930d048e95f89f2a7aa53754f349e08e0c5a86398c5481eb07f1
Status: Downloaded newer image for donhuvy/springboot-docker:v1.0.0
docker.io/donhuvy/springboot-docker:v1.0.0
C:\Users\donhu>docker run donhuvy/springboot-docker:v1.0.0
docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "mvnw": executable file not found in $PATH: unknown.
C:\Users\donhu>
怎么修呢?
发布于 2022-07-16 00:28:48
向您的$PATH变量中添加springboot-docker。
基本上,shell无法找到mvnw命令,它会查找$PATH变量中的所有位置。因为mvnw二进制文件位于项目dir中,所以需要添加它。
如果这是在linux环境中完成的,则类似于下面的导出路径=$PATH:./springboot-docker
对于windows,您可以在线搜索如何编辑。
发布于 2022-07-16 01:30:31
将CMD [ "mvnw", "spring-boot:run" ]
更改为CMD [ "./mvnw", "spring-boot:run" ]
当您的停靠程序希望执行命令mvnw springboot:run
时,它需要在环境$PATH中查找文件mvnw
,但没有找到任何文件。
将mvnw
更改为./mvnw
,这将告诉docker在当前工作目录中执行mvnw
文件(您以前在其中复制了mvnw
)。
发布于 2022-10-27 22:43:46
这是一个权限问题,在上很常见。在我的例子中,当我移除sudo时,它起了作用。
i.e
docker-compose up
而不是sudo docker-compose up
还可以尝试将sudo chmod -R a+rwx
添加到Dockerfile中的工作目录中。
https://stackoverflow.com/questions/73002090
复制相似问题