代码之家  ›  专栏  ›  技术社区  ›  SubZeno

在Docker上以非根用户身份运行JAR时出现权限错误

  •  0
  • SubZeno  · 技术社区  · 7 年前

    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
    

    你能告诉我我做错了什么吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   norbjd    7 年前

    使用者 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 具有正确权限的文件夹(写入 )
    推荐文章