Rails API をGKEにデプロイして動作確認する


今回Rails6 APIをGoogle Kubernetes Engineにデプロイしたので手順のみメモ
ちょっとやり方は特殊かもしれません

構成 (一部のみ)

├── .docker
│   ├── dev
│   │   ├── .bashrc
│   │   ├── Aptfile
│   │   └── Dockerfile
│   └── prod
│        ├── .bashrc
│        ├── Aptfile
│        └── Dockerfile
│   
├── dip.yml
├── docker-compose.development.yml
└── docker-compose.production.yml

手順

rails 導入

Rails 6: Docker/docker-compose/dipでrails new力を取り戻すを参考にdipを使ってrails new します。

Dockerfileとdocker-composeの作成

構成に従ってDockerfileとdocker-compose.production.ymlを作成。
今後dev環境はdipを、production環境はdocker-compose -f docker-compose.production.ymlを使っています(今後はproduction環境をもっとシンプルなものにしたい)。

build

$ docker-compose -f docker-compose.production.yml build

ローカルでの確認

$ docker-compose -f docker-compose.production.yml up

localhostで確認

push

$ docker-compose -f docker-compose.production.yml push

GKEにデプロイ

GCPからKubernetes Engineに移動
5.1 クラスタを作成
5.2 ワークロードからデプロイを選択
5.3 既存のコンテナイメージのイメージパスから「選択」→たった今となっているイメージを選択

公開

  1. デプロイ後のボタンから公開を選択  すでに同様のimageを公開などして表示されない場合などはServicesのサービスを削除する
  2. ポート番号を指定して公開
     例えばポート番号を3000に設定している場合は既存の80→3000に変更します

  3. エンドポイントを選択かURLにエンドポイントを入力して動作を確認
    Railsの初期画面が表示されます。
     

以上