- [覚書]Ottoで開発環境を構築
- [覚書]OttoでAWSに本番環境構築&デプロイ
- [覚書]Ottoで開発環境を構築 (Appfileをカスタマイズ → Rubyのバージョン指定)
- [覚書]Ottoで開発環境を構築 (MongoDBのDockerコンテナを動かす) ← ここ
プロジェクト作成
作業用ディレクトリを作成します。
$ mkdir -p otto-practice/examples/mongodb
$ cd otto-practice/examples/mongodb
設定
Appfile
を作成します。
Docker
を使う場合は、application
のtype
にdocker-external
を指定し、customization
にDocker
の設定を記述します。
Appfile
application {
name = "mongodb"
type = "docker-external"
}
customization "docker" {
image = "mongo:3.0"
run_args = "-p 27017:27017"
}
Github
のhashicorp/otto
のサンプルをそのまま使おうとするとコンパイルでエラーが発生しました。
どうやら、customization
に"docker"
の記述が必要なようです。
Otto
の仕様を理解できていないのか、仕様が安定していないのかは未確認です。。。
コンパイル
開発環境の設定(Appfile
)を読み込みます。
$ otto compile
開発環境の構築
構築
開発環境を構築します。
$ otto dev
ステータス確認
Dev environment
がCREATED
になっていることを確認します。
$ otto status
==> App Info
Application: mongodb (docker-external)
Project: mongodb
Infrastructure: aws (simple)
==> Component Status
Dev environment: CREATED
Infra: NOT CREATED
Build: NOT BUILT
Deploy: NOT DEPLOYED
コンテナ確認
開発環境にアクセスして、MongoDB
のコンテナが動いていることを確認します。
$ otto dev ssh
==> Executing SSH. This may take a few seconds...
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)
* Documentation: https://help.ubuntu.com/
New release '14.04.3 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Welcome to your Vagrant-built virtual machine.
Last login: Fri Sep 14 06:23:18 2012 from 10.0.2.2
vagrant@precise64:~$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
mongo 3.0 ca3cf1f47476 10 days ago 261.6 MB
vagrant@precise64:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
839c09231a0e mongo:3.0 "/entrypoint.sh mongo" About a minute ago Up 59 seconds 0.0.0.0:27017->27017/tcp mongodb
原因不明のエラー
原因は不明ですが、スマホのテザリング機能を使ったネットワーク上でotto dev
コマンドを実行すると、下記のようなエラーが発生してしまい、Docker
のインストールに失敗してしまいました。
自宅のネットワーク上で実行した際には、問題なく実行できました。
(本件が、ネットワークに原因があるのかどうかはわかりません。。。)
==> default: Running provisioner: docker...
default: Installing Docker (latest) onto machine...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
apt-get install -y --force-yes -q xz-utils lxc-docker -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold'
Stdout from the command:
Reading package lists...
Building dependency tree...
Reading state information...
xz-utils is already the newest version.
The following extra packages will be installed:
aufs-tools cgroup-lite git git-man liberror-perl lxc-docker-1.9.1 patch
Suggested packages:
git-daemon-run git-daemon-sysvinit git-doc git-el git-arch git-cvs git-svn
git-email git-gui gitk gitweb diffutils-doc
The following NEW packages will be installed:
aufs-tools cgroup-lite git git-man liberror-perl lxc-docker lxc-docker-1.9.1
patch
0 upgraded, 8 newly installed, 0 to remove and 181 not upgraded.
Need to get 15.4 MB of archives.
After this operation, 46.2 MB of additional disk space will be used.
Get:1 https://get.docker.com/ubuntu/ docker/main lxc-docker-1.9.1 amd64 1.9.1 [8,495 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/universe aufs-tools amd64 1:3.0+20111101-1ubuntu1 [98.8 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main liberror-perl all 0.17-1 [23.8 kB]
Get:4 https://get.docker.com/ubuntu/ docker/main lxc-docker amd64 1.9.1 [2,094 B]
Get:5 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main git-man all 1:1.7.9.5-1ubuntu0.2 [632 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main git amd64 1:1.7.9.5-1ubuntu0.2 [6,103 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main patch amd64 2.6.1-3ubuntu0.1 [80.0 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main cgroup-lite all 1.1.5 [4,098 B]
Fetched 20.9 MB in 13s (1,561 kB/s)
Stderr from the command:
stdin: is not a tty
Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/a/aufs-tools/aufs-tools_3.0+20111101-1ubuntu1_amd64.deb Size mismatch
Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/libe/liberror-perl/liberror-perl_0.17-1_all.deb Size mismatch
Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/g/git/git-man_1.7.9.5-1ubuntu0.2_all.deb Size mismatch
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Error building dev environment: Error executing Vagrant: exit status 1
The error messages from Vagrant are usually very informative.
Please read it carefully and fix any issues it mentions. If
the message isn't clear, please report this to the Otto project.
参考
以上