Должен ли Fig быть внутри Vagrant VM или снаружи для OSX?

Я пытался покопаться в документации и видеороликах на YouTube для Docker, Fig, boot2docker, Vagrant на OSX и, к сожалению, столкнулся со многими противоречиями или устаревшей информацией.

Я пытаюсь просто получить 2 контейнера докеров, используя Fig, работающий в OSX (приложение и MySQL). Мой первый вопрос: предполагается ли, что Fig запускается вне Vagrant VM (т.е. из командной строки терминала в OSX) или он должен быть в Vagrantfile, чтобы вы выполняли «vagrant ssh», а затем запускали fig изнутри для запуска контейнеров? Или вы можете сделать это обоими способами, и у каждого из них есть свои плюсы и минусы?

Я новичок во всем этом, и я понимаю основы того, что Docker в основном использует ОС, но эта ОС должна быть Linux, следовательно, нужен либо boot2docker (который раскручивает Tiny Linux), либо Vagrant с Ubuntu или CoreOS или что-то в этом роде. . Тогда было бы логичнее запускать fig внутри Vagrant SSH, потому что теперь вы в основном эмулируете то, что обычно происходило бы, если бы вы использовали Linux в качестве родной ОС на своей машине разработки.

Я знаю, что вы можете запускать fig без Vagrant, но тогда вы теряете синхронизацию папок, что значительно затрудняет использование IDE на OSX для разработки.


person Kris White    schedule 26.11.2014    source источник


Ответы (2)


fig должен быть установлен в вашем хост-окружении после его установки, например через homebrew, затем вы настраиваете fig.yml в том же каталоге, что и ваш dockerfile, и набираете fig up. Дополнительная информация на веб-сайте fig здесь.

/редактировать:

Таким образом, документация по dig на данный момент немного плохая, но в основном и dockerfile, и fig.yml должны указывать на общий каталог.

Поэтому, если ваш код находится в каталоге с именем code, который находится внутри того же каталога, что и ваш файл dockerfile и fig.yml, убедитесь, что он объявлен, как показано ниже, в вашем файле докеров:

ADD . /code
WORKDIR /code

И в fig.yml он должен быть определен следующим образом:

volumes:
   - .:/code

Итак, когда вы запустите fig up, он должен быть доступен для приложения. На сайте fig доступны специальные руководства для django или rails в настоящий момент.

person Nima    schedule 26.11.2014
comment
Итак, в этом сценарии (который я проделывал несколько раз), как вы синхронизируете папку кода на локальном OSX с контейнером, созданным с помощью fig? Эти указания работают только в том случае, если вы используете boot2docker, который предоставляет тонкую ОС Linux. Но попытка синхронизировать код между контейнером и ОС здесь не удалась, потому что контейнер видит только ОС boot2docker, а не вашу родную Mac OS. - person Kris White; 27.11.2014
comment
Я понимаю ваше разочарование из-за плохой документации - я добавил в ответ дополнительную информацию. Надеюсь, это поможет. - person Nima; 27.11.2014

Я привык делать

  1. Используйте функцию общей папки напрямую из boot2docker (начиная с 1.3.x)

Начиная с версии boot2docker 1.3.x, общая папка по умолчанию поддерживается дополнительно через VirtualBox Guest.

  1. fig устанавливается boot2docker непосредственно в MacOS, он устанавливается в MacOS

см. http://www.fig.sh/install.html

  1. (необязательно) использовать контейнер докеров fig (это хорошо для Windows)

см. https://github.com/larrycai/docker-images/tree/master/fig

person Larry Cai    schedule 08.12.2014