为了账号安全,请及时绑定邮箱和手机立即绑定

Google Cloud Functions:用于 Python 3.7 运行时的 CI/CD

Google Cloud Functions:用于 Python 3.7 运行时的 CI/CD

梦里花落0921 2021-11-02 20:33:04
在有关测试云功能的文档末尾,有一个关于 CI/CD 的部分。但是,他们给出的唯一示例是节点。我一直在尝试用 python 3.7 做一些无济于事。每次推送到 Google Source Cloud 存储库时,我都会设置一个触发器。它是一个多功能项目├── actions│   ├── action.json│   └── main.py├── cloudbuild.yaml├── Dockerfile├── graph│   ├── main.py│   └── requirements.txt└── testing    ├── test_actions.py    └── test_graph.py我已经试过这个例子来进行自定义构建。这是我的cloudbuild.yml:steps:  - name: 'gcr.io/momentum-360/pytest'这是我的Dockerfile:FROM python:3.7COPY . /WORKDIR /RUN pip install -r graph/requirements.txtRUN pip install pytestENTRYPOINT ["pytest"]在云构建环境(非本地)中运行时出现以下错误:"Missing or insufficient permissions.","grpc_status":7}"E >The above exception was the direct cause of the following exception:testing/test_graph.py:7: in <module>from graph import main这意味着我没有足够的权限读取自己的文件?我不确定我这样做是否正确。
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

我相信问题出在你的cloudbuild.yaml. 您需要对其进行配置以从 Dockerfile 构建映像。查看官方的 Google Cloud Build以了解如何创建构建配置文件。


我一直在尝试这个简单的设置,它对我有用:


├── project

    ├── cloudbuild.yaml

    └── Dockerfile

    └── test_sample.py

内容test_sample.py:


def inc(x):

   return x + 1


def test_answer():

   assert inc(3) == 4

这是cloudbuild.yaml:


steps:

- name: 'gcr.io/cloud-builders/docker'

  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/pytest-image', '.' ]

images:

- 'gcr.io/$PROJECT_ID/pytest-image'

的Dockerfile,重要的是这个项目在自己的目录复制到运行pytest是很重要的。


FROM python:3.7

COPY . /project

WORKDIR /project

RUN pip install pytest

ENTRYPOINT ["pytest"]

现在,在项目目录中我们构建镜像:


gcloud builds submit --config cloudbuild.yaml .


我们拉它:


docker pull gcr.io/$PROJECT_ID/pytest-image:latest


并运行它:


docker run gcr.io/$PROJECT_ID/pytest-image:latest


结果:


============================= test session starts ==============================

platform linux -- Python 3.7.2, pytest-4.2.0, py-1.7.0, pluggy-0.8.1

rootdir: /src, inifile:

collected 1 item


test_sample.py .                                                         [100%]


=========================== 1 passed in 0.03 seconds ===========================


查看完整回答
反对 回复 2021-11-02
  • 1 回答
  • 0 关注
  • 161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信