LoginSignup
9
5

More than 5 years have passed since last update.

Azure に YAML をアップロードするだけで Growi を立てる

Posted at

※本稿で紹介するのは運用に耐えうる構成ではなく、あくまで Microsoft Azure Web App for Containers の便利さを伝えるためのデモ用の内容です。また、Web App for Containers の Multi-Container 機能の2019年4月時点のプレビュー版の情報を元にしており、仕様変更の可能性があります。

Azure Web App for Containers

Web App for Containers の Multi-Container 機能を使うと、複数コンテナからなるアプリケーションを簡単に Azure 上にデプロイできます。

ためしにオープンソースの wiki ツール GROWI を、3分で構築してみます。GROWI は Node.js アプリケーションと MongoDB のデーテベースの2つのコンテナがあれば最低限動作します。

構築手順

まず Microsoft Azure ポータルに入り、「リソースの作成」→「Web」→「Azure Web App for Containers」と進みます。

image.png

アプリ名がドメインになるので、好きな文字を入力します。
OS を Linux にして、「コンテナーの構成」をクリックします。

image.png

予め下記 docker-compose.yml ファイルをローカルに作成しておくか 筆者のgist からダウンロードしておき、「Docker Compose (プレビュー)」をクリックし、「構成ファイル」からアップロードします。

docker-compose.yml
version: '3'
services:
  growi:
    image: weseek/growi:3.4.4
    links:
      mongo: mongo
    depends_on:
      - mongo
    environment:
      MONGO_URI: mongodb://mongo:27017/growi
      PASSWORD_SEED: superstrongpassword012345678901234567890123456789012345678901234 # ※適当に
    volumes:
      growi_data: /data

  mongo:
    image: mongo:3.6
    ports:
      27017:27017
    volumes:
      mongo_configdb: /data/configdb
      mongo_db: /data/db
volumes:
  growi_data:
  mongo_configdb:
  mongo_db:

「作成」ボタンを押して3分ぐらい待って https://(アプリ名).azurewebsites.net/ にアクセスすると、GROWIのトップページが映ると思います。

以上、YAML ファイルをアップロードするだけで GROWI を構築することができました。簡単ですね。

注意点

  • 今回利用した docker-compose.yml は、一般的な記法と少々異なっています。
    • 例えば environment:PASSWORD_SEED=seed というイコールで繋ぐのではなく PASSWORD_SEED: seed となっています。こうしないと Azure Web App ではうまく動かないようでした。
  • elasticsearch をうまく動かす方法が不明だったため省略しています。この場合でも GROWI は起動するものの、検索が使えません。
  • volumes の設定は効いていないようで、この構成だとアプリを再起動するたびに全データが消失します。
    • 実際に GROWI を運用する場合には Azure Cosmos DB 等を使って永続化する構成になるんじゃないかと思います。
  • そもそも GROWI は Amazon Web Services の S3 に依存しているので、Azure に立てるのは...

まだ実用レベルでは厳しいですが、docker-compose.yml を(ほぼ)そのままアップロードするだけで3分待てば Web アプリケーションがクラウド上で動くというのは、かなり魅力的だと思います。

参考

9
5
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
5