Vagrant 与码头供应员一起了解流浪汉

Vagrant 与码头供应员一起了解流浪汉,vagrant,docker,vagrantfile,Vagrant,Docker,Vagrantfile,因此,我的目标是让Vagrant为我构建一个VM,我可以将其用作rails web应用程序开发环境。我对流浪汉、码头工人等非常、非常陌生,想看看这是否有道理: 我应该创建一个Docker图像,还是两个?我的想法是,一个映像将用于rvm、ruby和rails,另一个映像将用于Apache 目标是可以分发给少数人,然后他们可以轻松地建立完全相同的环境 这是我目前的档案: VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_V

因此,我的目标是让Vagrant为我构建一个VM,我可以将其用作rails web应用程序开发环境。我对流浪汉、码头工人等非常、非常陌生,想看看这是否有道理:

我应该创建一个Docker图像,还是两个?我的想法是,一个映像将用于rvm、ruby和rails,另一个映像将用于Apache

目标是可以分发给少数人,然后他们可以轻松地建立完全相同的环境

这是我目前的档案:

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用户身份运行所有内容)


最后,上述方法是有效的,如果我使用vagrant ssh,我可以直接进入我的VM,但显然,如果不执行docker run-I-t me/RVM dev并使用docker获取shell,我就无法使用RVM。这应该是工作流程吗?

依我之见,最好的流程是

1) 将你的应用程序和数据库堆栈分离到不同的框中

2) 在主机(物理机器)上运行docker,并在vagrant box中运行DB实例(mysql等)


选项一是最好的,因为您正在Vagrant中“沙盒”堆栈的两层(DB和APP),从而将操作系统留在本地机器(windows、Linux、Mac OSX)instact上。当然,您可以在物理机器上安装/运行IDE

以我的拙见,最好的流程是

1) 将你的应用程序和数据库堆栈分离到不同的框中

2) 在主机(物理机器)上运行docker,并在vagrant box中运行DB实例(mysql等)


选项一是最好的,因为您正在Vagrant中“沙盒”堆栈的两层(DB和APP),从而将操作系统留在本地机器(windows、Linux、Mac OSX)instact上。当然,您可以在物理机器上安装/运行IDE

我自己并不了解工作流,但可能遵循Docker的最佳实践,您不应该运行此命令:
运行apt get upgrade-y
它可能会破坏以前的图像。如果
docker exec-it/bin/bash
符合您的需要,您可以试试吗?如果没有,你能更详细地描述你想要实现的目标吗?结果应该是什么?我自己并不了解工作流,但可能遵循Docker的最佳实践,您不应该运行此命令:
运行apt get upgrade-y
它可能会破坏以前的图像。如果
docker exec-it/bin/bash
符合您的需要,您可以试试吗?如果没有,你能更详细地描述你想要实现的目标吗?结果应该是什么?
## 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