2017-10-05 50 views
0

我使用'hyperledger/fabric-couchdb:x86_64-1.0.2'图像在openshift上部署。 虽然我已经映射了上述路径的持久性卷,但我仍然拒绝了'/opt/couchdb/etc/local.d'even的权限。获取权限被拒绝,用于更改创建的文件和文件夹的权限

为了解决这个问题,我尝试通过创建自己的docker镜像来更改'hyperledger/fabric-couchdb:x86_64-1.0.2'中定义的权限。

我已经创建了具有以下内容的Dockerfile。

FROM hyperledger/fabric-couchdb:x86_64-1.0.2 
RUN chgrp -R 0 /opt/couchdb/etc/local.d && chmod -R g=u /opt/couchdb/etc/local.d 

但是,当我试图使用'码头构建'命令来构建这个图像时,我得到了以下错误。

docker build . -t deepakmule/fabric-couchdb:x86_64-1.0.2 
Sending build context to Docker daemon 2.048 kB 
Step 1/2 : FROM hyperledger/fabric-couchdb:x86_64-1.0.2 
---> 3f922f54bd68 
Step 2/2 : RUN chgrp -R 0 /opt/couchdb/etc/local.d && chmod -R g=u  /opt/couchdb/etc/local.d 
---> Running in f06a386ecb01 
chgrp: changing group of '/opt/couchdb/etc/local.d/local.ini': Operation not  permitted 
chgrp: changing group of '/opt/couchdb/etc/local.d': Operation not permitted 
The command '/bin/sh -c chgrp -R 0 /opt/couchdb/etc/local.d && chmod -R g=u  /opt/couchdb/etc/local.d' returned a non-zero code: 1 

回答

0

我在这里猜测一下:

上游Dockerfile有可能是USER命令。所以之后的所有命令都在该用户下运行。您可以通过在chgrp命令之前添加USER root来解决该问题。之后再添加USER命令(查看上游Dockerfile设置了哪个用户)。