docker-deployというリモートのDockerサーバ専用のdeployツール作りました

概要: DevOpsって自動化が超重要だよねー!


先日、

  • [[個人用途のVPSの管理をDockerベースにした /post/66636256465]]

という記事にも書いた通り、僕の個人的なWeb Site or Serviceや、 あるいはIRC関係のデーモンなんかは、

で管理しているのですが、このリモートのDockerサーバでの、 Docker containerのbuildや、 Docker containerを起動するupstartファイルの配置なんかは、実は、

_人人人人人人_ > 全部手動 <  ̄Y^Y^Y^Y^Y ̄

でやっておりました。

で、僕自身としてはDevOpsという文脈において、 手動でのOpsの管理は、 絶対に信頼すべきでなく 、 また 必ず自動化するべきである 、という考えを持っていて、 自動化必須だろボケカスとか自分に対して思ったので、 今回、

という、

  1. リモートでのDocker containerのビルド
  2. 及び、Docker container管理の自動化を行う設定ファイルの配置

を、全自動でやってくれるスクリプトを、

昨日まる一日かけて 書きました。

で、使い方としては、 README.md にも書いた通り、

$ curl -O https://raw.github.com/nyarla/docker-deploy/master/docker-deploy
$ chmod +x docker-deploy

した後、

# docker containerのビルド
$ docker-deploy --build --sudo \
--user core \
--host dev.sandbox.local \
--tagprefix nyarla \
/path/to/dockerfile/repository

# docker containerの自動起動化
$ docker-deploy --deploy --sudo \
--user core \
--host dev.sandbox.local \
--tagprefix nyarla \
--supervisor upstart \
/path/to/dockerfile/repository

という感じで使えるのですが、いかんせんコマンド名長いし、 コマンドオプションも長いので、僕はコマンド一発実行ができるように、

USER = core
HOST = dev.sandbox.local
TAG  = nyarla

OPTS = --user $(USER) --host $(HOST) --tagprefix $(TAG)

SUPERVISOR = upstart

all: build deploy

build:
docker-deploy --build --sudo $(OPTS)

deploy:
docker-deploy --deploy --sudo --supervisor $(SUPERVISOR) $(OPTS)

という感じのMakefileを書いて、

# Docker containerのビルド
$ make build

# Docker containerのデプロイ
$ make deploy

という感じで、make一発でbuild && deployができるようにしています。

で、ちなみにこのスクリプト、皆に広く使ってもらいたかったし、 また、こういうDevOps界隈において、 これってかなり便利じゃね? みたいなスクリプトに、 ライセンスが云々するのもなんだか気乗りしなかったので、 とりあえずdocker-deployに関しては、

  • docker-deploy is under the public domain

としました。 僕としては、あとはもう本当に自由にいじり倒してください! という感じですね。

あとまあ細かいところのデキ加減とか微妙な感じな所もあるので、 もしここ直してーとか、あるいはここ直したよーとか有れば、

でIssue立てるとか、あるいはPull Request送るとかでお願いします。

ということで、今日の朝っぱらから書いている記事は以上です。 何か分からん事があったら、IRCとかLingrとかTwitterとかで、

  • @nyarla

まで話かけてもらえればと思います。

というわけで以上、終わります。

#FIXME

nyarlaが大体

Scrapbox.io でコメントや意見を書く