【问题标题】:How to solve Docker for Windows permission error如何解决 Docker for Windows 权限错误
【发布时间】:2020-07-17 09:11:38
【问题描述】:

我目前在使用 Docker for Windows 10 时遇到一些“权限被拒绝”问题。

我正在使用这张图片:Intersystems IRIS

我的这个图像的 Dockerfile 是:

FROM store/intersystems/iris-community:2020.2.0.204.0

此外,我正在使用 docker-composedocker-compose.yml

version: '2'
services:
backend:
    container_name: iris
    build: 
        context: ./container/IRISDataPlatform
        dockerfile: Dockerfile.yaml
    volumes:
        - ./container/IRISDataPlatform/ext:/external
    ports:
        - "9091:51773"
        - "9092:52773"
    environment:
        - ISC_DATA_DIRECTORY=/external/irissys
        - ICM_SENTINEL_DIR=/external
    command: --password-file /external/password.txt

问题是每当我执行 docker-compose up -d 容器会在几秒钟后退出并显示以下消息:

[INFO] 正在初始化 IRIS,请稍候...

启动 IRIS

./irisrecov 的所有权无效

正在初始化 IRIS,请稍候...

启动 IRIS

恢复失败。启动中止。

[ERROR] 命令“iris start IRIS quiet”以状态 256 退出

07/07/20-15:46:02:326 (374) 0 [Utility.Event] ISC_DATA_DIRECTORY=/external/irissys

07/07/20-15:46:02:353 (374) 0 [Utility.Event] 执行 iris qlist

07/07/20-15:46:02:580 (374) 0 [Utility.Event] 版本相同

07/07/20-15:46:02:596 (374) 0 [Utility.Event] 源 /usr/irissys: 2020.2.0.204.0com

07/07/20-15:46:02:612 (374) 0 [Utility.Event] 目的地 /external/irissys: 2020.2.0.204.0com

07/07/20-15:46:02:627 (374) 0 [Utility.Event] 执行虹膜更新 IRIS 目录=/usr/irissys 数据目录=/external/irissys versionid=2020.2.0.204.0com

07/07/20-15:46:02:680 (374) 0 [Utility.Event] 执行查找 /usr/irissys/ -type d -exec chmod ugo -w {} +

07/07/20-15:46:03:349 (374) 0 [Utility.Event] 执行 chmod ugo-w /usr/irissys/

[错误]可能的原因:

[错误] - IRIS 二进制文件的用户/组所有权不正确

[错误] - 对 ISC_DATA_DIRECTORY 的写入权限不足

[致命] 启动 InterSystems IRIS 时出错

到目前为止我尝试了什么:

  • 将“user”属性添加到后端服务并将其设置为“root”或“irisowner” -> 两者都不起作用
  • 将“RUN adduser irisusr root && adduser irisusr irisusr”添加到我的 Dockerfile(如此处所述:“https://community.intersystems.com/post/using-intersystems-iris-containers-docker-windows”)但它结束于:"adduser 只有 root 可以将用户或组添加到系统"docker-compose build

你知道有什么解决办法吗?

提前致谢

【问题讨论】:

  • 能否请您出示 Dockerfile?

标签: docker docker-compose permission-denied intersystems-iris


【解决方案1】:

您的 Dockerfile 中的序列应该类似于:

FROM intersystemsdc/iris-community:latest   
USER root   
RUN adduser irisusr root && adduser irisusr irisusr  

USER irisowner  

您可以使用OpenExchange 中的任何模板作为示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-23
    • 2018-06-22
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多