Closed13

GCRにプッシュしたイメージをCloud Runにデプロイしたい!!!

キュリオキュリオ

GCRにプッシュまではOKだがCloud Runでデプロイエラー

  start                                                                                                                                                               
  . Routing traffic...                                                                                                                                                
  ✓ Setting IAM Policy...                                                                                                                                             



Deployment failed                                                                                                                                                     
ERROR: (gcloud.run.deploy) Cloud Run error: The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information.

やりたいことゴール
https://blog.rmblankslash.net/entry/2021/03/10/080000

キュリオキュリオ

コード(下記引用してる)
https://blog.rmblankslash.net/entry/2021/03/10/080000

FROM node:14-alpine3.14

ENV PORT 8080
ENV HOST 0.0.0.0
COPY . .

RUN yarn install
EXPOSE 8080
CMD ["node","hello.js"]
const express = require('express');
const app = express();
const port = process.env.PORT || 3002;

app.get('/test' , (req,res)=>{
    res.send('hello express');
});

app.listen(port, (err)=>{
    if (err) {
        console.error('error happened');
        throw err;
    }
    console.log(`http://0.0.0.0:${port}/test`);
});

キュリオキュリオ

Cloud Buildつかえばうまくいくのかな?
ログ見る限りはDockerfileが悪そうに思うが何が原因かさっぱりわからん

terminated: Application failed to start: Failed to create init process: failed to load /usr/local/bin/docker-entrypoint.sh: exec format error
キュリオキュリオ

ちょっとコマンドでエラー見るの心折れそうだったのでUIで

でぎだ
CLIでもいけると思う

キュリオキュリオ

ちょっと一手間かかるけどローカルビルドはしないほうが良いね
Cloud BuildだとRosseta入れなくてもいい感じに互換してくれる

このスクラップは2022/04/16にクローズされました