docker container:将符号链接添加到/ var / www中的/ Users / www / [project]以访问和提供本地文件

时间:2016-12-18 05:08:32

标签: docker coldfusion lucee

我正在尝试通过Lucee docker容器(https://hub.docker.com/r/lucee/lucee5/)在我的mac上提供本地CFML文件。 我甚至将我的mac上的特定文件夹挂载到docker镜像中的符号链接 docker run -it imagename -v /Users/[username]/www/projectx:/code /bin/bash 所以在docker镜像中的bash我现在有/ code。 然后,我在ln -s /code projectx中创建符号链接/var/www

然后我在运行tomcat时运行图像,同时还安装文件夹

docker run -p 1337:8888 -v /Users/[username]/www/projectx:/code [imagename] catalina.sh run

我希望能够访问http://localhost:1337/projectx 不幸的是,它无法找到该文件夹​​。可能是因为Lucee在运行时没有识别或索引文件?

这可能吗?

我看到的结果是在我的MAC上开发我的Coldfusion应用程序,同时在我的docker容器上运行Lucee + mysql并在本地拥有源代码,这样我就不必使用samba共享或其他方式来能够在我的IDE中编辑coldfusion文件。 (当我升级到Sierra时,Samba共享停止了工作)

2 个答案:

答案 0 :(得分:1)

您是否考虑过将代码目录挂载到/var/www,这是Lucee Docker镜像中的默认VOLUME挂载点?如果你真的希望它在/ code子目录中,那么在你的主机上放置那个子目录而不是使用符号链接。

一种简单的方法是使用docker-compose,例如以下docker-compose.yml

version: '2'

services:
  web:
    image: lucee/lucee5
    ports:
      - "1337:8888"
    volumes:
      - /Users/[username]/www/projectx:/var/www

然后,您可以使用docker-compose up

运行此操作

答案 1 :(得分:0)

除非在容器的生命周期内需要更改/code的内容,否则您只需在容器构建期间复制或添加它。 如果没有,正如Simon上面提到的那样,将卷直接安装到您想要使用它的位置更有意义。如果您不希望容器更改卷中的任何内容,请将其设为RO。