【发布时间】:2018-10-12 11:32:32
【问题描述】:
我有一个 Spring Boot 应用程序。 Docker 容器无权创建文件。
码头文件:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD /build/libs/file-upload-service-2.0.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
图像构建命令:
docker build -t file-upload-service .
图像运行命令:
docker run -d --name file-upload-service -p 9104:9104 file-upload-service:latest
文件夹权限:
sudo chown -R root:docker /home/storage/
sudo chmod -R 777 /home/storage/
当使用java -jar 运行时,应用程序可以创建文件。
【问题讨论】:
-
尝试创建文件/文件夹时遇到什么异常?
-
文件文件=新文件(路径); file.canWrite() 返回 false
-
path变量的值是多少?是/home/storage吗? -
/home/storage/sajib.png
-
好的。您希望从您的主机中获取此文件。然而,代码正试图在 docker 容器中找到该文件。您必须挂载主机卷才能使其工作。
标签: docker spring-boot dockerfile