Skip to content

Instantly share code, notes, and snippets.

@vmlinz
Created October 28, 2015 16:14
Show Gist options
  • Select an option

  • Save vmlinz/eef02cc7a26db68f1bae to your computer and use it in GitHub Desktop.

Select an option

Save vmlinz/eef02cc7a26db68f1bae to your computer and use it in GitHub Desktop.
Introduction to dash by IFTTT

DASH简介

DASH是由IFTTT不久前公布的一个开发环境设置工具,它使用了docker-compose,docker-machine和Ansible作为基础,安装非常简单,只需要执行它的bootstrap脚本就可以喝杯咖啡等它设置完成。

这个工具的主要功能是辅助开发容器化的应用程序,比如之前你使用了docker-compose配置过的项目,他能帮你配置本地的nginx和dnsmasq帮你把自定义域名重定向到你的应用,这样就可以不用在设置docker-compose的时候把nginx的单独配置放到docker-compose.yml里面。

准备

  • Homebrew with XCode Command Line Tools
  • Homebrew Cask
  • Ansible
  • VirtualBox
  • Docker
  • Docker Machine
  • Docker Compose

安装

bash <(curl -fsSL https://raw.githubusercontent.com/IFTTT/dash/master/bin/bootstrap)

使用

在配置了Docker Compose的目录下执行: dev up

工作原理

  • 它会创建一个名叫‘dev’ 的 docker machine 虚拟机
  • 增加一个zsh和其他shell的配置文件
  • 将主机的‘.dev’解析指向之前创建的虚拟机
  • 自动启动nginx proxy,这个是个动态反向代理生成器,只需要在app的dockerfile里面设定VIRTUAL_HOST这个环境变量就可以创建nginx的vhost
  • 自动启动dnsmasq,这个是一个本地的dnsmasq,结合ansible脚本里面对mac的dns的修改,他会把主机的'.dev'域名指向虚拟机ip

样例

rails-docker-dev,我在这个例子里面设置了一个简单的rails app和postgresql,docker-compose.yml里面只设定了app和db server,然后我在.env里面设置了rails app的域名为VIRTUAL_HOST=app.local.dev,这样只要我运行dev up之后就可以直接访问app.local.dev,他会通过nginx反向代理到rails app里面。

问题

  • 这个脚本基本没有啥问题,跨越gfw之后可以很顺利的安装
  • 有一个已知的问题是如果使用brew安装的zsh,他可能不会正确的安装zsh的路径配置,我已经给他提了pr
  • 这个项目作者维护的不很勤,release之后还没有再改过,不过我从中还是学到了很多东西,特别是他用到的那个nginx的docker image,很神奇
  • 类似的项目不少,但是这个的依赖好像特别多,也许可以用他的思路去改进其他项目。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment