LoginSignup
25

More than 3 years have passed since last update.

GCPのGoogleComputeEngineでDockerComposeを実行する最速の方法

Posted at

釣り臭いタイトルですね。
内容は結構他の人とかぶってるんですが、公式通りするとハマる部分があったので書いておく。
※これは開発環境とかの用途で使って下さい、本番でやるんだったらGKEとかの方がいいです。
※GCPは使える、課金設定は済んでる前提です。

GCPのGCEでDockerを動かす理由

これはずばりDockerに特化したOSが既に入っており、それを使うと楽だからです。
今回はSwaggerをみんなが見れるところで起動したかったので何か一番いいやつを探したら
GCP+docker-composeでした。

GCEマシンを立ち上げる

ふつーにWebGUIからGCEを立ち上げます。
開発用であんまりパワーいらないのでマシンタイプはmicroで十分。
ここでOSに「Container-Optimized OS 69-10895.172.0 stable」を選択します。

スクリーンショット 2019-03-13 16.43.19.png

起動したらgcloudコマンドでsshします。
ここからgcloudコマンドは分かります。

gitから必要なソースを取得

今回はswagger-all-in-oneという超絶便利なソースを使わせてもらいます。

git clone https://github.com/elevennines-inc/swagger-all-in-one-docker-compose.git

docker-composeをインストール

公式の手順はこちら。
https://cloud.google.com/community/tutorials/docker-compose-on-container-optimized-os

docker-composeってdockerImagegaあるのねw

$ docker run docker/compose:1.22.0 version

この後公式では.barhrcにdocker-composeコマンドをaliasしていますが
この通りやるとハマりました。/rootfsってなんやねん。

$ echo alias dc="'"'docker run --rm \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v "$PWD:/$PWD" \
    -w="/$PWD" \
    docker/compose:1.22.0'"'" >> ~/.bashrc
$ source ~/.bashrc

↑個人的にdocker-composeって打つのが面倒なのでいつもdcってコマンドでalias切ってます。

docker-compose実行

さっきのcloneしたところに移動してdocker-composeを実行。

$ dc up -d --build
$ dc ps
     Name                   Command               State               Ports
----------------------------------------------------------------------------------------
swagger-api      /usr/local/bin/apisprout / ...   Up      0.0.0.0:8083->8000/tcp
swagger-editor   sh /usr/share/nginx/docker ...   Up      0.0.0.0:8081->8080/tcp
swagger-nginx    nginx -g daemon off;             Up      80/tcp, 0.0.0.0:8084->8084/tcp
swagger-ui       sh /usr/share/nginx/run.sh       Up      80/tcp, 0.0.0.0:8082->8080/tcp

ファイアウォールに穴あけパンチ

GCEでデフォルトで作ったら80しか空いていないので8081〜8084の穴を開けましょう。
このリンクから辿っていって、tcp入力欄にカンマ区切りで8081,8082,8083,8084 って入力すればOK。
あとは作った設定をGCEに紐づけましょう。
スクリーンショット 2019-03-13 16.57.54.png

スクリーンショット 2019-03-13 17.06.26.png

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
25