質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

Q&A

解決済

1回答

2790閲覧

CircleCI で gcloud コマンドが使えない

s.nori

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Circle CI

Circle CIは、クラウド上に簡単にCI環境を構築できるWebサービスです。GitHubと連携させ、CIしたいリポジトリーを選択しビルド・テストを行います。チャット等を利用して結果を確認することが可能です。

0グッド

0クリップ

投稿2020/04/24 14:38

前提・実現したいこと

Golang で実装したアプリケーションを GitHub へ push したら
CircleCI で自動テスト、デプロイをするように設定をしたいと考えています。
公式ドキュメントやその他インターネットのサイトを参照しながら、実践中です。

CircleCI で使用する Docker image はカスタムイメージとなります。
Go の実行環境と Cloud SDK をインストールした image を作成し、Docker Hub に push しています。
ローカルでこの Docker image 内で gcloud コマンドを使用できることは確認済みです。
config.yml で使用する環境変数は CircleCI のコンソールで設定しています。

CircleCI を初めて使用するため、config.yml の設定内容等をあまり理解できていない部分もあります。
また、知識不足のため質問内容等に不足がございましたら、追記いたしますので、ご指摘いただきたく。

発生している問題・エラーメッセージ

Circle CI のログで gcloud コマンドがないとのメッセージが出力されます。

#!/bin/bash -eo pipefail gcloud --quiet components update /bin/bash: gcloud: command not found Exited with code exit status 127

該当のソースコード

# Golang CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-go/ for more details version: 2 jobs: build: docker: # specify the version - image: xxxxxx/circlecigo:20200424 # 個人名が記載されているため、伏せています name: circleci auth: username: $DOCKER_USERNAME password: $DOCKER_PASSWORD # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images # documented at https://circleci.com/docs/2.0/circleci-images/ # - image: circleci/postgres:9.4 #### TEMPLATE_NOTE: go expects specific checkout path representing url #### expecting it in the form of #### /go/src/github.com/circleci/go-tool #### /go/src/bitbucket.org/circleci/go-tool working_directory: /go/src/gae_sample steps: - checkout # specify any bash command here prefixed with `run: ` - run: go get -v -t -d ./... - run: go test -v ./... - run: name: update gcloud command: | gcloud --quiet components update - run: name: google auth command: | echo $GCLOUD_SERVICE_KEY | base64 --decode | gcloud auth activate-service-account --key-file=- gcloud --quiet config set project ${GOOGLE_PROJECT_ID} gcloud --quiet config set compute/zone ${GOOGLE_COMPUTE_ZONE} - run: name: deploy production command: | sh script/deploy.sh #スクリプトを使用してデプロイします。CircleCI を使用せず、ローカルからはデプロイできます。

試したこと

ここに問題に対して試したことを記載してください。

  • sudo をつけて実行 (同様のエラーとなる)
  • Docker image 内で circleci ユーザであれば、gcloud コマンドを実行できることを確認済みのため username を circleci とした(同様のエラーとなる)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

CicleCI 上で実行された Image に CloudSDK のパスが通っていなかったことが原因
config.yml に以下を追記し、gcloud コマンドが使えるようになった。
ローカルで Image を起動するとパスが通っているのに、CircleCI 上だとパスが通っていない点についてはよく分からず...。

config.yml

1- run: 2 name: Set PATH 3 command: | 4 echo 'export PATH=$PATH:/go/google-cloud-sdk/bin' >> $BASH_ENV 5 source /home/circleci/.bashrc

投稿2020/04/27 09:49

s.nori

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問