0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DoccanoをGoogle Cloud Runにデプロイする方法

Posted at

DoccanoをGoogle Cloud Runにデプロイする手順

このガイドでは、DoccanoをGoogle Cloud Runにデプロイするプロセスをステップバイステップで説明します。このプロセスには、Google Cloud BuildとGoogle Cloud Source Repositoriesの設定も含まれます。

前提条件

  • Google Cloud Platformのアカウントがあること。
  • gcloudコマンドラインツールがインストールされ、設定されていること。

1. Cloud Source Repositories リポジトリの作成

  1. Google Cloud Console にアクセスして、プロジェクトを選択します。
  2. ナビゲーションメニューから Source Repositories を選択し、リポジトリを表示 をクリックします。
  3. リポジトリを追加 ボタンをクリックして、新しいリポジトリを作成します。
  4. リポジトリに名前を付け(例:my-project-repo)、必要な設定を行い、作成 をクリックします。

2. ローカル Git リポジトリの設定

ローカルで作業しているプロジェクトがまだ Git リポジトリとして初期化されていない場合は、以下のコマンドを使用して初期化します。

git init
git add .
git commit -m "Initial commit"

3. Google Cloud Source Repositories とのリンク

作成したリポジトリをローカル Git リポジトリにリンクするには、次のコマンドを使用します。これにより、Google Cloud Source Repositories の URL がリモートリポジトリとして追加されます。

git remote add google https://source.developers.google.com/p/[PROJECT_ID]/r/[REPOSITORY_NAME]

ここで、[PROJECT_ID] は Google Cloud プロジェクトの ID、[REPOSITORY_NAME] は作成したリポジトリの名前に置き換えてください。

4. コードのプッシュ

ローカルの変更を Cloud Source Repositories にプッシュするには、次のコマンドを使用します。

git push google master

このコマンドは、ローカルの master ブランチの変更をリモートの master ブランチにプッシュします。必要に応じて、異なるブランチ名を指定することができます。

これで、Google Cloud Source Repositories へのプッシュが完了し、Cloud Build などの他のサービスでこれらのソースコードを使用することができるようになります。
git push goolge masterを実行すると新しい認証URLが表示されることがあります。
その場合はURLを開いてログインして認証スクリプトを全てターミナルで実行します。

Cloud Build の設定

Cloud Build の設定と cloudbuild.yaml ファイルの作成について詳細に説明します。まず、Cloud Build に必要なサービスアカウントを設定し、その後で cloudbuild.yaml ファイルを作成する手順を踏みます。

1. サービスアカウントの作成と設定

Cloud Build が他の Google Cloud サービスと連携するためには、適切な権限を持つサービスアカウントが必要です。以下の手順でサービスアカウントを作成し、必要なロールを割り当てます。

サービスアカウントの作成:

  1. Google Cloud Console にログインします。
  2. ナビゲーションメニューから IAM と管理 > サービスアカウント を選択します。
  3. ページ上部の + サービスアカウントを作成 をクリックします。
  4. サービスアカウントの名前を入力し、必要に応じて説明を追加します。
  5. 作成 をクリックして、次の画面でサービスアカウントの詳細を設定します。

必要なロールの割り当て:

  1. Cloud Build の実行には通常、以下のロールが必要です:

    • Cloud Build エディタroles/cloudbuild.builds.editor): これにより、Cloud Build がビルドを実行し、関連するリソースにアクセスすることが可能になります。
    • ストレージ オブジェクト管理者roles/storage.objectAdmin): ビルドプロセス中にアーティファクトやソースコードを Cloud Storage に読み書きする権限を提供します。
  2. サービスアカウント作成後、IAM でサービスアカウントを選択し、役割を追加 をクリックして上記のロールを追加します。

  3. 変更を保存します。

2. cloudbuild.yaml ファイルの作成

cloudbuild.yaml ファイルは、Cloud Build が実行するビルドの手順を定義します。以下は基本的な cloudbuild.yaml の例です。

steps:
  - name: 'gcr.io/cloud-builders/gcloud'
    args: ['version']

  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-image', '.']

images:
  - 'gcr.io/$PROJECT_ID/my-image'

この例では、次のことが行われます:

  • gcloud コマンドを使用してバージョン情報を出力します。
  • Docker を使用してイメージをビルドし、Google Container Registry にプッシュします。

cloudbuild.yaml ファイルをプロジェクトに追加:

  1. 上記の内容を cloudbuild.yaml ファイルに保存し、プロジェクトのルートディレクトリに配置します。
  2. Cloud Source Repositories や GitHub など、Cloud Build がアクセスできるリポジトリにプッシュします。

これで、Cloud Build が cloudbuild.yaml ファイルに基づいてビルドを実行できるようになります。

ステップ 3: Artifact RegistryでのDockerレポジトリの設定

  1. Navigation menu > Artifact Registryを選択します。
  2. "レポジトリを作成"をクリックし、タイプに"Docker"を選択します。
  3. レポジトリの名前と地域を指定します(例:doccano、asia-northeast1)。

ステップ 4: ローカル環境でのDoccanoの設定

git clone https://github.com/doccano/doccano.git
cd doccano
# Dockerfileとtool/run.shの調整を行い、適切な設定を加える

ステップ 5: Dockerfileの調整

Cloud Runでは環境変数PORTで動的にポートを指定します。tool/run.shに以下を追加して、環境変数からポート番号を取得します。

gunicorn \
  --bind="0.0.0.0:$PORT" \
  --workers="${WORKERS:-1}" \
  --timeout=300 \
  --capture-output \
  --log-level info \
  config.wsgi &

またDockerfileで以下設定が記載されていることを確認して下さい。

RUN chmod +x /doccano/tools/run.sh
CMD ["/doccano/tools/run.sh"]

ステップ 6: Cloud Source Repositoriesへのプッシュ

git add .
git commit -m "Prepare Doccano for Google Cloud"
git push google master

ステップ 7: Cloud BuildでのビルドとArtifact Registryへのプッシュ

Cloud Build を使用して cloudbuild.yaml ファイルをビルドする手順を説明します。これには、Google Cloud Console または Cloud SDK コマンドライン ツール gcloud を使用します。

理解しました。Dockerfileがプロジェクトのルートディレクトリであるdoccanoフォルダのdockerサブディレクトリ内にある場合、cloudbuild.yamlファイルを適切に設定して、Cloud BuildがそのDockerfileを認識できるようにする必要があります。

cloudbuild.yaml ファイルの設定方法

  1. cloudbuild.yamlの設定
    Dockerfileへのパスをcloudbuild.yaml内で正確に指定する必要があります。次の例は、Dockerfiledockerフォルダ内にある場合の設定を示しています:

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'gcr.io/$PROJECT_ID/my-image', '-f', 'docker/Dockerfile', '.']
    images:
    - 'gcr.io/$PROJECT_ID/my-image'
    

    この設定では、-fオプションを使用してDockerfileの正確な場所を指定しています。

  2. Cloud SDK(gcloud コマンドライン ツール)がインストール されていることを確認します。インストールされていない場合は、Google Cloud の公式ドキュメントからダウンロードしてインストールしてください。

  3. プロジェクトの設定 を確認します:

    gcloud config set project [YOUR_PROJECT_ID]
    

    [YOUR_PROJECT_ID] には、使用する Google Cloud プロジェクトの ID を指定します。

  4. ビルドの実行

    gcloud builds submit --config cloudbuild.yaml .
    

    このコマンドは、カレントディレクトリの cloudbuild.yaml を使用してビルドプロセスを開始します。. はカレントディレクトリを指し、ここにソースコードが含まれていることを意味します。

これらのステップにより、Cloud Build を使って cloudbuild.yaml をビルドし、設定されたタスク(例えば、コンテナのビルド、テストの実行、デプロイメント等)を自動的に実行できるようになります。

ステップ 8: Google Cloud Runへのデプロイ

環境変数として認証情報を渡しながらDoccanoをデプロイします。

gcloud run deploy doccano-service \
  --image asia-northeast1-docker.pkg.dev/[PROJECT-ID]/doccano/doccano \
  --add-cloudsql-instances [YOUR_CLOUD_SQL_INSTANCE_CONNECTION_NAME] \
  --update-env-vars DATABASE_URL=postgres://[USER]:[PASSWORD]@[HOST]:[PORT]/[DATABASE],SECRET_KEY=[YOUR_SECRET_KEY],GOOGLE_TRACKING_ID=[YOUR_TRACKING_ID] \
  --platform managed \
  --region asia-northeast1 \
  --allow-unauthenticated

このステップにより、DoccanoがCloud Runにデプロイされ、アプリケーションにアクセスするためのURLが提供されます。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?