我写了以下Dockerfiler:
FROM openjdk:8-jdk-alpine
RUN addgroup -g 999 -S appgroup && \
adduser -u 999 -S appuser -G appgroup
USER appuser
COPY myapp.jar /usr/app/myapp.jar
ENTRYPOINT ["java","-jar","/usr/app/myapp.jar"]
当我运行图像时,我收到以下错误:
main ERROR Unable to create file logs/file.log java.io.IOException: Could not create directory /logs
你能告诉我我做错了什么吗?
用户appuser
在当前工作目录中没有写权限(/
,您可以使用docker run --rm openjdk:8-jdk-alpine pwd
进行验证),并且您的应用程序似乎需要在该工作目录中创建logs/
目录。
可能的解决方案 :
WORKDIR
设置为他可以写的地方(例如/tmp
,如果它被创建则为/home/appuser
)在Dockerfile
--workdir /path/to/a/folder/where/appuser/can/write
命令时可以使用选项docker run
/logs
文件夹(写为appuser
)