問題の要約
やろうとしていること
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を使ってコマンドラインツールになっています。
分かる方回答して頂けると嬉しいです。
あなたの回答
tips
プレビュー