docker front end & reverse proxy for development
Go HTML Makefile Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
docker
html
.gitignore
Makefile
README.md
config.go
config_sample.yml
config_test.go
docker.go
main.go
mirage.go
reverseproxy.go
storage.go
webapi.go
webapi_test.go

README.md

mirage - reverse proxy frontend for docker

mirage is reverse proxy for docker container and container manager.

mirage can launch and terminate docker container and serve http request with specified subdomain. Additionaly, mirage passes variable to Dockerfile using environment variables.

Usage

  1. Setup mirage and edit configuration (see Setup section for detail.)
  2. Run mirage.

Following instructions use below settings.

host:
  webapi: docker.dev.example.net
  reverse_proxy_suffix: .dev.example.net
listen:
  HTTP: 80

Prerequisite: you should resolve *.dev.example.net to your docker host.

Using CLI

  1. Launch docker container using curl.
curl http://docker.dev.example.net/api/launch \
  -d subdomain=cool-feature \
  -d branch=feature/cool \
  -d image=myapp:latest
  1. Now, you can access to container using "http://cool-feature.dev.exmaple.net/".

  2. Terminate container using curl.

curl http://docker.dev.example.net/api/terminate \
  -d subdomain=cool-feature

Using Web Interface

  1. Access to mirage web interface via "http://docker.dev.example.net/".
  2. Press "Launch New Container".
  3. Fill launch options.
    • subdomain: cool-feature
    • branch: feature/cool
    • image: myapp:latest
  4. Now, you can access to container using "http://cool-feature.dev.exmaple.net/".
  5. Press "Terminate" button.

Customization

Mirage now supports custom parameter. Write your parameter on config.yml.

Mirage contains default parameter "branch" as below.

parameters:
  - name: branch
    env: GIT_BRANCH
    rule: ""
    required: true

You can add custom parameter. "rule" option is regexp string.

Setup

  1. Download binary or go get
  2. Rename config_sample.yml to config.yml
  3. Edit config.yml to your environment
  4. Change your domain setting to fit your config.yml
  5. Run mirage

License

The MIT License (MIT)

(c) 2014 acidlemon. (c) 2014 KAYAC Inc.