在jboss wildfly docker容器中使用war文件的权限

时间:2018-02-12 05:44:01

标签: docker jboss wildfly permission-denied

我正在使用CentOS 7。我从docker hub

中提取图像
https://hub.docker.com/r/jboss/wildfly/

并从

获取战争
https://github.com/arun-gupta/docker-for-java/tree/master/chapter2

运行以下命令

docker run -it --name=wf -p 8080:8080 -v /home/admin/webapp.war:/opt/jboss/wildfly/standalone/deployments/webapp.war jboss/wildfly

它在webapp.war上拒绝了我的许可

ERROR [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 1) WFLYDS0008: Failed checking whether /opt/jboss/wildfly/standalone/deployments/webapp.war was a complete zip: java.io.FileNotFoundException: /opt/jboss/wildfly/standalone/deployments/webapp.war (Permission denied)

如何在不对dockerfile进行任何更改的情况下授予wepapp.war文件权限?

1 个答案:

答案 0 :(得分:4)

尝试制作自己的图片,如jboss-dockerfiles/wildfly issue 19

中所述
  

有两种方法可以解决它:

     

将文件的所有者添加到带有chown的图像后更改文件的所有者(但这很丑陋......)

FROM jboss/wildfly
ADD your-awesome-app.war /opt/jboss/wildfly/standalone/deployments/ 
USER root
RUN chown jboss:jboss /opt/jboss/wildfly/standalone/deployments/*
USER jboss
  

更改主机的your-awesome-app.war文件的权限:

chmod 755 your-awesome-app.war
     

这将使容器内的jboss用户可以读取它,并且它将能够解压缩它。