python - Docker 错误 - 命令错误 : "0.0.0.0:" is not a valid port number or address:port pair

标签 python docker google-cloud-platform google-cloud-run

所以我有一个 docker 文件,我打算构建该文件并将其推送到 Google Cloud Run,它看起来像这样:

# pull official base image
FROM python:3.7-slim

# set work directory
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt

# copy project
COPY . /usr/src/app/

CMD python manage.py runserver 0.0.0.0:$PORT

这个想法是,一旦我将其推送到 Cloud Run,我的 Django 项目将在 0.0.0.0:$PORT 上运行,其中环境变量 $PORT 的值由 Google Cloud Run 自动设置。

我尝试在本地运行以下图像的容器,看看这是否有效。我将 $PORT 设置为 80,然后当我运行 docker 镜像的容器时,我得到以下结果:

"CommandError: "0.0.0.0:" is not a valid port number or address:port pair."

查看其他答案,例如 this .

据我了解,0.0.0.0 是给定计算机的公共(public) IP 地址的占位符。我的问题是,为什么当我在本地运行 docker run [DockerImage] 时没有收到“CommandError”??

如果还有其他问题,请告诉我,我会予以澄清。

编辑: 我还想指出,我正在关注this tutorial

最佳答案

在主机上设置环境变量不会在容器内设置它。

命令python manage.py runserver 0.0.0.0:$PORT正在容器内运行,其中 $PORT未设置,因此它扩展为 python manage.py runserver 0.0.0.0:

尝试docker run -e PORT=$PORT <your_image>通过设置 PORT容器内的 env 变量具有来自主机的值。

关于python - Docker 错误 - 命令错误 : "0.0.0.0:" is not a valid port number or address:port pair,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59859713/

相关文章:

bash - 将目录从本地计算机移动到 GCP 中的实例

python - 以不寻常的方式对 Pandas 的两列进行排序

go - 使用 go-dockerclient 从自定义注册表下载图像挂起

linux - Docker 错误 : Could not connect to deb. debian.org(111:连接被拒绝)

docker - 连接 Docker 容器 : Frontend to GraphQL Backend via Docker Compose on the same Host

google-cloud-platform - GCloud Compute Engine 不会删除或停止。不断重生

frameworks - 是否有即将推出的 Cloud Spanner 框架?

python - "SELECT ... WHERE ... IN"参数数量未知

python - GAE Python - 操作错误 : (2013, 'Lost connection to MySQL server during query')

python - 如何找到两个不同音频样本之间的标度?