软链接在docker容器内创建时,在本地不可访问



我有一个使用Dockerfile从自定义WF Image运行的wildfly容器。在这里,我将自定义的standalone-full.xml文件添加到wf的配置文件夹(/opt/jboss/wildfly/standalone/configuration)中,并相应地构建映像。在docker运行期间,我没有挂载配置文件夹,因为我们无法反向挂载(容器到主机),但我需要将standalone-full-app.xml文件挂载到本地。

所以我尝试软链接来创建容器内部并将其挂载到相应的目录,该目录在docker运行命令期间挂载到本地。

docker exec <wf_container> ln -s /opt/jboss/wildfly/standalone/configuration/standalone-full-app.xml /opt/jboss/wildfly/standalone/appconfig/

这个目录挂载到我的本地主机-v /home/user/docker/app/config/:/opt/jboss/wildfly/standalone/appconfig/

我可以读/写软链接在容器(/opt/jboss/wildfly/standalone/appconfig/standalone-full-app.xml),它反映在实际的文件。

但是我无法在本地访问相同的文件,它说没有找到这样的文件或目录

有人可以帮助我实现访问我的standalone-full-app.xml文件在本地访问?

FROM jboss/wildfly:14.0.1.Final
RUN rm /opt/jboss/wildfly/standalone/configuration/standalone.xml
RUN rm /opt/jboss/wildfly/standalone/configuration/standalone-ha.xml
RUN rm /opt/jboss/wildfly/standalone/configuration/standalone-full.xml
RUN rm /opt/jboss/wildfly/standalone/configuration/standalone-full-ha.xml
RUN rm -r /opt/jboss/wildfly/modules/system/layers/base/org/eclipse
ADD standalone.conf /opt/jboss/wildfly/bin/
ADD standalone-full-app.xml /opt/jboss/wildfly/standalone/configuration/
ADD modules /opt/jboss/wildfly/modules/
ADD startServer.sh /opt/jboss/wildfly/bin
RUN /opt/jboss/wildfly/bin/add-user.sh admin adminadmin --silent
RUN /opt/jboss/wildfly/bin/add-user.sh -a ejbuser ejbuser --silent
CMD /opt/jboss/wildfly/bin/startServer.sh -c standalone-full-app.xml -b 0.0.0.0 -bmanagement 0.0.0.0 -Djboss.management.http.port=9990 --debug
docker run --name ${WF_CONTAINER} -d -e TZ=${TIME_ZONE} 
-v /etc/localtime:/etc/localtime:ro 
-v /home/user/docker/app/config/:/opt/jboss/wildfly/standalone/appconfig/:rw 
-v /home/user/docker/app/deployments:/opt/jboss/wildfly/standalone/deployments/:rw 
-p 9990:9990 -p 8080:8080 -p 8787:8787 ${WF_IMAGE}

您的软链接/符号链接使用了绝对路径名。但是如果挂载点改变了,操作系统就不能再沿着这个路径运行了。

如果符号链接的源和目标都在同一个文件系统中,尝试创建一个相对路径为:

的符号链接
cd /opt/jboss/wildfly/standalone/appconfig
ln -s ../configuration/standalone-full-app.xml .

在这里你有机会在容器内外成功解析符号链接。

最新更新