我正在尝试通过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共享停止了工作)
答案 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。