1

我正在尝试使用 docker 容器在 Google 云运行服务上部署 dbt。跟随david vasquezdbtDocker 图像 但是当尝试将构建的图像部署到云运行时。我收到一个错误。

ERROR: (gcloud.run.deploy) 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.

这是我的码头文件

FROM python:3.8.1-slim-buster

RUN apt-get update &&                 apt-get dist-upgrade -y &&                 apt-get install -y  --no-install-recommends                     git software-properties-common make build-essential                     ca-certificates libpq-dev &&                 apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

COPY requirements/requirements.0.17.0rc4.txt ./requirements.0.17.0rc4.txt 

RUN pip install --upgrade pip setuptools
RUN pip install -U pip
RUN pip install dbt==0.17.0 
RUN pip install --requirement ./requirements.0.17.0rc4.txt


RUN useradd -mU dbt_user

ENV PYTHONIOENCODING=utf-8
ENV LANG C.UTF-8
ENV PORT = 8080
ENV HOST = 0.0.0.0

WORKDIR /usr/app
VOLUME /usr/app

USER dbt_user
CMD ['dbt', 'run']

我了解运行状况检查失败是因为它找不到要监听的端口,除非我在我的ENV

任何人都可以帮我解决问题吗?提前谢谢

4

1 回答 1

1

根据文档,在 Cloud Run 上部署应用程序的要求之一是监听请求0.0.0.0并公开端口:

容器必须在请求发送到的端口上侦听 0.0.0.0 上的请求。默认情况下,请求会发送到 8080,但您可以将 Cloud Run 配置为将请求发送到您选择的端口。

dbt是一个命令行工具,这意味着它不会公开任何 PORT,因此当您尝试部署 Cloud Run 并验证构建是否正在侦听时,它会因上述错误而失败。

于 2020-09-03T23:08:07.407 回答