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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Go

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

Q&A

0回答

1609閲覧

Goで書いたREST APIサーバーをCroud Rrun にデプロイするとき、コンテナの起動に失敗するのを解決したい

uyugineer

総合スコア13

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Go

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

0グッド

1クリップ

投稿2021/11/02 14:26

問題の要約

やろうとしていること

Goで書いたREST APIサーバーをCroud Rrun にデプロイし、httpリクエストを受け付けるサーバーを立てたい

期待と実際の結果

デプロイ完了後、サービスURLにアクセスすると、template.htmlがブラウザに表示されてほしい。
実際には、デプロイ時にコンテナの開始に失敗している様子。

エラーメッセージ

GCPのコンソールで確認したログ↓
Ready condition status changed to False for Revision kintai-00001-buh with message: Cloud Run error: Container failed to start. Failed to start and then listen on the port defined by the PORT environment variable. Logs for this revision might contain more information.

これまでに試したこと

設定ファイルのポート番号を確認しましたが、そもそもポート番号がどう設定されているのが正解なのかわからず…
CroudRunは初めて使うため、チュートリアルをこなしていますが、その時はポートは8080で問題なかったです。

ソースコード

以下、コンテナデプロイ用Dockerfileです。

# Use the offical golang image to create a binary. # This is based on Debian and sets the GOPATH to /go. # https://hub.docker.com/_/golang FROM golang:1.16-buster as builder # Create and change to the app directory. WORKDIR /app # Retrieve application dependencies. # This allows the container build to reuse cached dependencies. # Expecting to copy go.mod and if present go.sum. COPY go.* ./ RUN go mod download # Copy local code to the container image. COPY . ./ RUN ls # Build the binary. RUN go build -v -o server ./cmd/main.go # Use the official Debian slim image for a lean production container. # https://hub.docker.com/_/debian # https://docs.docker.com/develop/develop-images/multistage-build/#use-multi-stage-builds FROM debian:buster-slim RUN set -x && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ ca-certificates && \ rm -rf /var/lib/apt/lists/* # Copy the binary to the production image from the builder stage. COPY --from=builder /app/server /app/server # Run the web service on container startup. CMD ["./app/server http-server"]

ファイルがたくさんあるので、こちらのGitHubリポジトリも見てください。
https://github.com/uyuhub/SampleApp001
ルートディレクトリにあるdocker-compose.ymlは開発環境用なので関係ないです。
cobraを使ってコマンドラインツールになっています。

分かる方回答して頂けると嬉しいです。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問