Понимание бродяги с помощью поставщика докеров
Так что моя цель здесь состоит в том, чтобы Vagrant раскрутил мне виртуальную машину, которую я могу использовать в качестве среды разработки веб-приложений rails. Я очень, очень новичок в Vagrant, Docker и т. Д. И хотел проверить, имеет ли это смысл:
Должен ли я создать один образ Docker или два? Я думал, что одно изображение будет для rvm, ruby и rails, а другое - для Apache.
Целью было бы то, что можно было бы распространить среди нескольких человек, которые затем легко могли бы настроить точно такую же среду.
Вот мой текущий Vagrantfile:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "phusion/ubuntu-12.04-amd64"
config.vm.network "forwarded_port", :guest => 80, :host => 5000
# Share the docker configs
config.vm.synced_folder "./docker", "/docker"
config.vm.provision "docker" do |d|
d.build_image "-t me/rvm-dev /docker/rvm-dev"
d.run "me/rvm-dev"
end
config.vm.host_name = "coursera-rail.dev"
config.vm.network :forwarded_port, guest:80, host:8080
end
А вот мой текущий (возможно, неправильный) Dockerfile (в качестве отступления, я пытаюсь найти хорошее руководство по созданию учетной записи пользователя "docker", чтобы я не запускал все как root)
## Dockerfile
FROM ubuntu:latest
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y curl
RUN mkdir -p /tmp/downloads
## Install RVM, Ruby, Rails
RUN cd /tmp/downloads
RUN \curl -L https://get.rvm.io | bash -s stable --ruby --rails
Наконец, вышесказанное работает, и если я использую vagrant ssh, я могу зайти на свою виртуальную машину, но, очевидно, я не могу использовать RVM, не выполнив docker, запустив -i -t me/rvm-dev и не получив оболочку с docker. Это должен быть рабочий процесс?
1 ответ
По моему скромному мнению, лучшим потоком было бы
1) разделите ваше приложение и стек БД на бродячие ящики
или же
2) запустите docker на хосте (физическом компьютере) и вашем экземпляре БД (mysql и т. Д.) Внутри бродячей коробки.
Первый вариант - лучший, потому что вы "помещаете в песочницу" оба слоя стека (DB и APP) внутри Vagrant, тем самым оставляя операционную систему на вашем локальном компьютере (windows, Linux, Mac OSX) без изменений. Конечно, вы можете установить / запустить вашу IDE на физическом компьютере.