【问题标题】:soft link is not accessible in local, when it is created inside docker container在 docker 容器中创建软链接时,在本地无法访问它
【发布时间】:2022-06-10 21:26:00
【问题描述】:

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

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

docker exec 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}

【问题讨论】:

    标签: java docker jboss wildfly symlink


    【解决方案1】:

    您为软链接/符号链接使用了绝对路径名。但如果挂载点发生变化,操作系统将无法再遵循该路径。

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

    cd /opt/jboss/wildfly/standalone/appconfig
    ln -s ../configuration/standalone-full-app.xml .
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2017-11-08
      • 1970-01-01
      • 2021-04-07
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多