概要
Docker上にGitBucket/Jenkins/nginx/DNS/デスクトップ環境のコンテナを立て、開発環境一式まるまる構築します。各コンテナが更新するファイルはホスト側に配置します。
Pros/Cons
- Dockerfileを見ればインストールしたものが一目瞭然
- バックアップや移行が簡単
- rootkitにやられても再起動すれば元通り
- セキュリティアップデートは面倒
現在のステータス
- VPSにホストにUbuntuを入れる <-イマココ
- dnsを構築する
- nginxを構築する
- GitBucket環境を構築する
- Selenium用のJenkins環境を構築する
- Desktop環境(IntelliJ IDEA)を構築する
- まとめと反省
サーバー準備
ベアメタル2台使ってCoreOS+fleetでいろいろ試していたのですが、今回はConoHaのVPSの一番安いプランを使ってみます。
「サーバー追加」
1.プラン
タイプ: VPS
リージョン: 東京
メモリ: 1GB
2.イメージ
イメージタイプ: OS
OS: Ubuntu
CoreOSが無かったのでUbuntuにしました。OSイメージをアップロード出来るのですが今回はそこまでしません。
バージョン: 14.04(64bit)
root パスワード: xxxxxx
ここでパスワードを決めておく必要があります。
「追加」ボタンを押すとイメージ作成中となり、サーバーリストに表示されます。しばらくするとコンソールに接続できるようになります。
Docker準備
$ apt-get update
$ wget -qO- https://get.docker.com/ | sh
aptでインストールした方が管理が楽かもしれません。
$ apt-get install docker.io
できるだけrootで作業したくないのでdockerユーザーを作ろうとしたのですが 'adduser docker' だと'docker' グループがもうあるので作れない、と怒られてしまいます。
useraddだと自分でディレクトリ作ったり.bashrc持って来たりとか面倒なんで、別名でやった方が楽かもしれないですね。
# useradd docker -g docker -s /bin/bash
# mkdir -p /home/docker
# cp /etc/skel/.bashrc /home/docker
dockerユーザーで公開鍵ログインしようとしてハマりました。ConoHaのコンソールにはバグがあって公開鍵をテキスト送信しようとすると切り詰められてしまいます。Windows8 + Chrome環境です。twitterでも同じようなことをつぶやいてる方がいました。CentOS6 + Chromeでは再現しませんでした。この件はサポートとやり取り中で、環境により200バイト以上では文字が欠けることがあるようです。
一旦/etc/ssh/sshd_configでPasswordAuthentication yesにしてrootで接続し、/home/docker/.ssh/authorized_keysに登録してしまうのが早いと思います。
dockerユーザーでログインできるのを確認したら下記の様にポートも一応変更して再起動します。Ubuntu14.04ではPasswordAuthenticationはデフォルトでnoでした。
PasswordAuthentication no
PermitRootLogin no
Port 10022
$ sudo sshd restart