2016-12-18 23 views
3

Я пытаюсь обслуживать локальные файлы CFML на моем mac через контейнер докеров Lucee (https://hub.docker.com/r/lucee/lucee5/). Я дошел до того, что смонтировал конкретную папку на моем mac-символе в символической ссылке в моих изображениях докеров Итак, на башке в изображении докера у меня теперь есть/код. Затем я создаю символическую ссылку ln -s /code projectx в моем /var/www.контейнер докеров: добавьте символическую ссылку в/Пользователи/www/[project] в/var/www для доступа к локальным файлам и обслуживайте их

Когда я затем служить изображение работает в то же время кот монтаже Подвод папке

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

Я бы ожидать, чтобы иметь возможность получить доступ к http://localhost:1337/projectx К сожалению, он не может найти эту папку. Возможно, поскольку Lucee не распознает или не индексирует файлы во время выполнения?

Возможно ли это?

Исход, на который я смотрю, разрабатывает мое приложение Coldfusion на моем MAC при запуске Lucee + mysql на моем контейнере докеров и имеет исходный код локально, так что мне не нужно играть с акциями samba или другими способами способный редактировать файлы coldfusion в моей среде IDE. (Акция Samba перестала работать, когда я обновился до Сьерры)

ответ

1

Вы считали, что просто установите каталог кода на /var/www, который является точкой монтирования VOLUME по умолчанию в изображении Lucee Docker? Если вы действительно хотите, чтобы он находился в подкаталоге/code, тогда используйте этот подкаталог на своем хосте вместо того, чтобы играть с символическими ссылками.

Самый простой способ сделать это с помощью докер-COMPOSE, например, следующие docker-compose.yml

version: '2' 

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

Затем вы можете запустить с помощью docker-compose up

+0

Да, это работает. Блестяще, это намного проще. Единственное, что мне нужно исправить сейчас, это то, что в моей папке/projectx у меня есть 4 веб-сайта: So/projectx/player/root (у которого есть index.cfm) и/projectx/custmer/root (у которого есть index.cfm и т. д. На моем веб-сервере каждый из них представляет собой отдельный сайт apache2, где корневая папка - это то, что настроено в apache. Так как я обращаюсь, например, к http: // localhost: 1337/customer/root /, для этого потребуются отдельные настроенные веб-сайты. Моя голова немного туманна после дремоты, поэтому я не знаю, как это сделать прямо сейчас. – Mattijs

+0

Почему бы просто не установить apache и не отразить ли это производственную среду? Я сделал именно это, установив apache поверх изображения lucee5 –

+0

Я попытался изменить изображение lucee5, но затем я получаю код выхода 0, когда я пытаюсь его запустить. Не уверен, где я могу найти журнал или что-то не так. Но да, apache будет хорошим дополнением, чтобы я мог настроить несколько веб-сайтов и сделать каждую веб-страницу site virtualhost Посмотрите на объем, исходящий от моего Mac – Mattijs

0

Если нет необходимости иметь содержание /code изменение в течение срока действия контейнера, вы можете просто КОПИРОВАТЬ или ДОБАВИТЬ его во время сборки контейнера. Если нет, как предложил Саймон выше, имеет смысл установить громкость непосредственно там, где вы хотите ее использовать. сделайте его RO, если вы не хотите, чтобы контейнер менял что-либо в томе.

+0

Нет настоящей необходимости, я Я очень спокоен при использовании докеров, поэтому я не совсем уверен, что возможно. Я просто хочу запустить свой проект с 4 подсайтами, которые находятся в папке, и он может запускаться непосредственно на/var/www. Мне просто нужно выяснить, как я могу запускать 4 разных веб-сайта в этой докере. Может быть, настроить apache или tomcat для их размещения? Раньше я запускал виртуальную машину linux на ma mac, у которой на ней были бы mysql и apache, а затем есть доля samba, поэтому я мог бы редактировать код во время его работы на моем изображении виртуальной коробки. Поскольку osx Sierra я больше не могу подключиться. Следовательно, моя попытка докера – Mattijs

+0

звучит скорее как проблема Apache, а не Docker. , так что запуск нескольких «сайтов» на том же сервере называется виртуальными хостами в Apache (если я правильно помню), и если это то, что вам нужно, я бы посоветовал сначала установить Apache на свой компьютер, настроив его без Docker и затем переместите его в контейнер. , с другой стороны, если вы хотите запустить 4 контейнера, каждый из которых обслуживает один «сайт», это вопрос создания контейнерного сервера, а затем его запуск с 4 различными папками содержимого. –