gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 09:12:07 25 4
gpt4 key购买 nike

我确实编写了以下 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
  • 您可以在发出 docker run 命令时使用选项 --workdir/path/to/a/folder/where/appuser/can/write
  • 您可以创建具有正确权限的/logs 文件夹(为appuser 编写)

关于linux - 在 Docker 上以非 root 用户身份运行 JAR 时出现权限错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53996130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com