9
9

More than 5 years have passed since last update.

Docker for OSX で Meteor アプリを動かしてみた(meteorhacks/meteord)

Last updated at Posted at 2015-08-22

はじめに

先日 Meteor が GitHub リポジトリスター数 Web application frameworks カテゴリで1位になりました :clap:
ちなみに2位は Ruby on Rails、3位は Express となっております。

GitHub 全体のリポジトリスター数でも9位となり、Meteor は世界で注目されているプロジェクトとなっております。

そんな今話題の Meteor のアプリケーションを OS X 上の Docker で動かす方法を解説します。

検証環境

検証環境は以下の通りです。

  • OS X Yosemite 10.10.5
  • Docker Toolbox 1.8.1b
    • Docker Client 1.8.1
    • Docker Machine 0.4.1
    • Oracle VM VirtualBox 5.0.2
  • Meteor 1.1.0.3

なお、この記事は Docker および Meteor の導入方法については解説いたしません。Docker と Meteor のセットアップがまだな方は、以下のリンクをご参照の上、セットアップを行ってからこの記事をお読みください。

Meteor アプリケーションを Docker 上で動かす手順

meteorhacks/meteordを用いて、Meteor を Docker 上で動かしてみます。

1. Meteor プロジェクトの作成

bash$
meteor create meteor-example

2. Dockerfile 作成

Dockerfile を Meteor プロジェクトディレクトリのルートに作成します。

bash$
# Meteor プロジェクトディレクトリに移動
cd meteor-example

# Dockerfile 作成
echo "FROM meteorhacks/meteord:onbuild" > Dockerfile

できあがった Dockerfile はこちら。

Dockerfile
FROM meteorhacks/meteord:onbuild

3. Docker イメージのビルド

bash$
docker build -t yourname/app .

yourname/app は Meteor アプリの Docker イメージ名になります。お好きな名前に変更してください。

例:

bash$
docker build -t n-oshiro/meteord-example-app .
実行結果
Sending build context to Docker daemon 14.34 kB
Step 0 : FROM meteorhacks/meteord:onbuild
# Executing 2 build triggers
Trigger 0, COPY ./ /app
Step 0 : COPY ./ /app
Trigger 1, RUN bash $METEORD_DIR/on_build.sh
Step 0 : RUN bash $METEORD_DIR/on_build.sh
 ---> Running in fdc0350bcf8a
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6121    0  6121    0     0   2672      0 --:--:--  0:00:02 --:--:--  5747
Downloading Meteor distribution
######################################################################## 100.0%

Meteor 1.1.0.3 has been installed in your home directory (~/.meteor).
Writing a launcher script to /usr/local/bin/meteor for your convenience.

To get started fast:

  $ meteor create ~/my_cool_app
  $ cd ~/my_cool_app
  $ meteor

... (省略) ...

Removing intermediate container fd0f093a6f23
Removing intermediate container fdc0350bcf8a
Successfully built fb122de5bcc1

ビルドが終わったら、イメージの一覧を確認します。

bash$
docker images |grep meteord
n-oshiro/meteord-example-app    latest     fb122de5bcc1    3 minutes ago     313.9 MB
meteorhacks/meteord             onbuild    d0263be6aff1    3 months ago     302.1 MB

Dockerfile で指定した meteorhacks/meteord というイメージと、 先ほど作成したイメージが追加されていますね。

4. Meteor アプリケーションを Docker で起動

以下のコマンドで Meteor アプリを Docker で起動します。

bash$
docker run -d \
    -e ROOT_URL=http://yourapp.com \
    -e MONGO_URL=mongodb://url \
    -e MONGO_OPLOG_URL=mongodb://oplog_url \
    -p 8080:80 \
    yourname/app 

なお、OS X の Docker は、VirtualBox の boot2docker 仮想マシン上で動いています。OS X 上で 上記コマンドを試す時は、ROOT_URL には boot2docker のIPアドレス(もしくはホスト名)とポートを指定する必要があります。

boot2docker の IP アドレスは $DOCKER_HOST を参照してください。

例:

bash$
echo $DOCKER_HOST
tcp://192.168.99.100:2376
bash$
docker run -d -e ROOT_URL=http://192.168.99.100:8080 -p 8080:80 n-oshiro/meteord-example-app

これで Meteor アプリが Docker 上で動きます。
docker ps コマンドでプロセスを確認してみます。

bash
$ docker ps
CONTAINER ID        IMAGE                          COMMAND                  CREATED              STATUS              PORTS                  NAMES
cd0db059012f        n-oshiro/meteord-example-app   "/bin/sh -c 'bash $ME"   About a minute ago   Up About a minute   0.0.0.0:8080->80/tcp   kickass_cray

Meteor アプリが起動しているのが確認できますね。

5. ブラウザで Meteor アプリケーションの動作確認

前のステップで docker run で起動する時に ROOT_URL に指定したURLにブラウザでアクセスします。

meteord-example.png

動いた!

おわりに

この記事では OS X の Docker 上で Meteor アプリを動かす方法を解説しました。

meteorhacks/meteodを使うと簡単に Meteor アプリを Docker イメージにすることができます。

検証はしていませんが、OS X でなくても Meteor と Docker が動く環境ならこの手順で Docker イメージを作成することができると思います。

Meteor も Docker も日本語の情報が少ないので、この記事がこれから試される方の手助けになれば幸いです。

よい Docker & Meteor ライフを!

参考

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9