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