微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试写入在Marathon中运行的Docker Volume时获取AccessDeniedException

如何解决尝试写入在Marathon中运行的Docker Volume时获取AccessDeniedException

我正在尝试在Docker上运行具有持久卷的容器并将其部署到马拉松比赛。容器将保留一个.txt文件,以保存其进度。当我部署容器进行测试时-它工作正常。如果该文件不存在,则会创建该文件,并成功读取和覆盖该文件。当我使用相同的配置将其部署到生产环境时,在第一次尝试创建文件时,我会得到java.nio.AccessDeniedException。

到目前为止我尝试过的事情:

  1. 以特权模式运行容器-没什么
  2. 挂起测试应用程序,然后重新部署到生产环境

非常感谢您的帮助!

marathon.json

{
  "id": "${ID}","cpus": 0.01,"mem": 512,"disk": 0,"instances": 1,"constraints": [
    [
      "hostname","UNIQUE"
    ],],"container": {
    "type": "DOCKER","volumes": [
      {
        "containerPath": "/srv/data","hostPath": "/srv/data/service-auditbatch-${ENV}/srv/data","mode": "RW"
      }
    ],"docker": {
      "image": "${IMAGE}","network": "BRIDGE","portMappings": [
        {
          "containerPort": 8080,"servicePort": 0
        }
      ]
    }
  },"env": {
    "SPRING_PROFILES_ACTIVE": "${ENV}"
  },"healthChecks": [
    {
      "gracePeriodSeconds": 30,"intervalSeconds": 30,"timeoutSeconds": 20,"maxConsecutiveFailures": 3,"portIndex": 0,"path": "/actuator/health","protocol": "HTTP","ignoreHttp1xx": false
    }
  ],"labels": {
    "env": "${ENV}"
  },"upgradeStrategy": {
    "minimumHealthCapacity": 0,"maximumOverCapacity": 0
  }
}

Dockerfile

workdir /opt/klm
copY target/auditlog.v1.batch.jar ./

RUN chown -R klm:klm /opt/klm

USER klm

CMD java -jar auditlog.v1.batch.jar

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。