我确实编写了以下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
能告诉我我做错了什么吗?
答案 0 :(得分:2)
用户appuser
在当前工作目录(/
中没有写权限,您可以使用docker run --rm openjdk:8-jdk-alpine pwd
进行验证),看来您的应用程序需要创建一个{{ 1}}目录中。
可能的解决方案:
logs/
设置到他可以在WORKDIR
上书写的位置(例如/tmp
,如果创建了/home/appuser
)Dockerfile
命令时使用选项--workdir /path/to/a/folder/where/appuser/can/write
docker run
文件夹(为/logs
编写)