“诗歌运行”能否为Google Cloud Build运行的Docker版本造成问题?

问题描述

使用pip或poetry之类的程序包管理器并将CI / CD原则应用于Python项目时,通常的方法是构建两个单独的Docker映像,一个用于生产执行的轻量级映像,另一个包含测试的映像。

在Google Cloud Build中运行这些测试意味着运行自定义步骤,如此处https://cloud.google.com/community/tutorials/cloudbuild-test-runner中的教程所述。这是我的Dockerfile的最后一部分

workdir /myproject

copY run-tests.sh /myproject/run-tests.sh

ENTRYPOINT [ "/myproject/run-tests.sh" ]

其中run-test.sh的最后一行是:poetry run pytest。然后,我将以下步骤添加到cloudbuild.yaml中:

  - name: "gcr.io/$PROJECT_ID/$REPO_NAME:test-$SHORT_SHA"
    id: Run test
    dir: /myproject

我的构建因以下错误而失败:

[FileNotFoundError] [Errno 2]没有这样的文件或目录

但是,像docker run -it gcr.io/myproject/myimage:test-1241ead这样在本地运行映像(我从GCR提取映像)可以正确运行测试。我唯一认为不同的是我的机器(MacOS)和GCP之间的Docker引擎。

Google Cloud Build运行什么版本的Docker?当我转而选择避免使用poetry run来避免使用虚拟环境时,这一切都奏效,但是我的计算机与GCP上的执行之间的这种不对称让我感到担忧

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)