当前位置: 首页 > 知识库问答 >
问题:

无法在Google Cloud上部署Ubuntu 20.04 Docker容器

苏伟志
2023-03-14
Cloud Run error: Invalid argument error. Invalid ENTRYPOINT. [name: "gcr.io/{PROJECT_ID}/{SERVICE_NAME}@sha256:{HASH}"
error: "Invalid command \"/bin/sh\": fil
  e not found"
  e not found"
]....failed
Deployment failed
docker run --rm --publish 5000:5000 -e PORT=5000 -it gcr.io/{PROJECT_ID}/{SERVICE_NAME}@sha256:{HASH}
FROM ubuntu:20.04

COPY . /app
WORKDIR /app

RUN apt-get update \
    && DEBIAN_FRONTEND=noninteractive apt-get install -y python3 python3-pip \
    && pip3 install gunicorn Flask flask-cors

CMD exec gunicorn --bind :$PORT --worker-tmp-dir /dev/shm --timeout 900 wsgi:app

有人知道可能发生了什么吗?

其他信息:

status:
  conditions:
  - type: Ready
    status: 'False'
    message: |-
      Cloud Run error: Invalid argument error. Invalid ENTRYPOINT. [name: "gcr.io/{PROJECT_ID}/{SERVICE_NAME}@sha256:{HASH}"
      error: "Invalid command \"/bin/sh\": file not found"
      ].
    lastTransitionTime: '2020-05-12T07:40:12.804Z'
  - type: ConfigurationsReady
    status: 'False'
    message: |-
      Cloud Run error: Invalid argument error. Invalid ENTRYPOINT. [name: "gcr.io/{PROJECT_ID}/{SERVICE_NAME}@sha256:{HASH}"
      error: "Invalid command \"/bin/sh\": file not found"
      ].
    lastTransitionTime: '2020-05-12T07:40:12.804Z'
  - type: RoutesReady
    status: 'True'
    lastTransitionTime: '2020-05-12T06:19:12.224Z'

共有1个答案

李宜然
2023-03-14

我遇到了同样的问题。它似乎是断断续续的:在白天,我不能部署到云运行,但在晚上晚些时候,各种变通方法在大约一半的时间里发挥了作用。

我发现的最可靠的解决办法是不要依赖于CMD或EntryPoint中的/bin/sh或/bin/bash。它似乎在运行时存在/bin/sh,但在部署前Cloud Run测试容器时,它有时不存在。

在DockerFile中不是这样:

CMD exec gunicorn --bind :$PORT --workers 1 --threads 4 main:app
CMD ["/usr/bin/python3", "/app/run_gunicorn.py", "--workers", "1", "--threads", "4", "main:app"]
import os
import sys
from gunicorn.app.wsgiapp import run
port = os.environ['PORT']
sys.argv[-1:-1] = ['--bind', f':{port}']
print("sys.argv:", sys.argv)
run()
 类似资料:
  • 我正试图使用但出现错误。下面是我的文件内容: 错误: 开始步骤#2 步骤#2:已经有图像(带摘要):gcr.io/cloud-builders/gcloud 步骤2:错误:(gcloud.compute.instances.update container)未指定的资源[instance-2-production]。指定[--zone]标志。 如果我从Cloud SDK Sheel运行相同的命令,

  • 我试着在这些问题中应用所有的解决方案: 在我的web.xml中,我使用了标记'res-ref-name'。 多谢!

  • 当我试图在heroku上部署springboot应用程序时,出现了以下错误: 无法执行目标org.apache.Maven.plugins:maven-compiler-plugin:3.8.1:在项目后端编译(default-compile):错误编译:无效的目标版本:11->[Help 1]Remote:[error]Remote:[error]要查看错误的全部堆栈跟踪,请使用-e开关重新运行

  • 我们可以在单独的docker容器中部署apache和php,然后将它们链接起来。 但是有没有办法在docker容器中本地安装apache(使用apt get install apache2)和php fpm,然后链接它们? 谢谢

  • 我尝试构建twitter-connector-1.0.0和2.0.0。1.1.0的连接器文件 2.0.0的连接器文件

  • 我使用默认的ssd mobilenet v1 fpn模型进行对象检测。它在我的笔记本电脑上运行得非常好,但当我尝试在android上部署tflite文件时,它给我的错误是: null A/LIBC:致命信号6(SIGABRT),代码-6(在tid 25346(推断)中) 但当我使用ssd mobilenet v1时,应用程序运行得非常好 谁能指导我该怎么做?任何帮助都是很大的