我正在尝试通过Google Cloud Run部署一个基于Ubuntu 20.04的简单Python Docker容器。我已经成功构建了镜像,但是当我尝试部署Cloud Run服务时,出现以下错误(省略项目细节):
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}
我的Dockerfile非常基础:
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
更加奇怪的是,如果我使用 debian:buster-slim
替换基础映像,它就可以正常工作。
有人有任何想法吗?
额外信息:
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'