Понимание бродяги с помощью поставщика докеров

Так что моя цель здесь состоит в том, чтобы 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 на физическом компьютере.

Другие вопросы по тегам