如何解决尝试写入在Marathon中运行的Docker Volume时获取AccessDeniedException
我正在尝试在Docker上运行具有持久卷的容器并将其部署到马拉松比赛。容器将保留一个.txt文件,以保存其进度。当我部署容器进行测试时-它工作正常。如果该文件不存在,则会创建该文件,并成功读取和覆盖该文件。当我使用相同的配置将其部署到生产环境时,在第一次尝试创建文件时,我会得到java.nio.AccessDeniedException。
到目前为止我尝试过的事情:
- 以特权模式运行容器-没什么
- 挂起测试应用程序,然后重新部署到生产环境
非常感谢您的帮助!
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 举报,一经查实,本站将立刻删除。