GCP Flex 模板错误:未在 envsetup 文件中设置 py 选项...错误等待容器:意外 EOF
Posted
技术标签:
【中文标题】GCP Flex 模板错误:未在 envsetup 文件中设置 py 选项...错误等待容器:意外 EOF【英文标题】:GCP Flex Template Error: py options not set in envsetup file ... error waiting for container: unexpected EOF 【发布时间】:2021-11-25 02:42:48 【问题描述】:尝试将 dataflow flex 模板运行器与自定义 python 容器映像一起使用。
FROM gcr.io/dataflow-templates-base/python3-template-launcher-base
ARG WORKDIR=/dataflow/template
RUN mkdir -p $WORKDIR
WORKDIR $WORKDIR
COPY . .
ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="$WORKDIR/requirements.txt"
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="$WORKDIR/pipeline_preprocess_preprocess_table.py"
RUN pip install -U -r ./requirements.txt
使用以下命令构建/运行容器:
gcloud builds submit --gcs-log-dir $GCSLOGDIR --tag $TEMPLATE_IMAGE .
gcloud dataflow flex-template build $TEMPLATE_PATH --image "$TEMPLATE_IMAGE" --sdk-language "PYTHON" --metadata-file $METADATA_FILE --network $NETWORK --subnetwork $SUBNETWORK --project $PROJECT --worker-region $REGION --service-account-email $SERVICE_ACCOUNT_EMAIL
gcloud dataflow flex-template run "<pipeline-name>-`date +%Y%m%d-%H%M%S` " --template-file-gcs-location $TEMPLATE_PATH --parameters <parameter_name>=<parameter_value>...repeat_for_ea --region "$REGION" --project ut-dws-udrc-dev --setup-file setup.py
管道使用直接运行器和数据流运行器在本地运行。不知道发生了什么。非常感谢任何帮助。
【问题讨论】:
你有没有机会解决这个问题? 【参考方案1】:所以我们必须解决这个问题。 https://cloud.google.com/dataflow/docs/guides/templates/configuring-flex-templates 的文档在说谎,所有环境变量都需要定义,尽管它们可以为空。我们的Dockerfile
有这个:
ENV FLEX_TEMPLATE_PYTHON_PY_FILE="/app/entrypoint.py"
ENV FLEX_TEMPLATE_PYTHON_REQUIREMENTS_FILE="/app/requirements.txt"
ENV FLEX_TEMPLATE_PYTHON_PY_OPTIONS=""
ENV FLEX_TEMPLATE_PYTHON_EXTRA_PACKAGES=""
ENV FLEX_TEMPLATE_PYTHON_SETUP_FILE=""
【讨论】:
以上是关于GCP Flex 模板错误:未在 envsetup 文件中设置 py 选项...错误等待容器:意外 EOF的主要内容,如果未能解决你的问题,请参考以下文章
将 GCP App Engine 限制为仅使用 1 个单元的 app engine flex core