跳转到主要内容

一个用于克隆Git仓库、使用Docker构建其镜像并将其注册到Google Artifact Registry的软件包。

项目描述

克隆仓库,从该仓库构建Docker镜像,然后将该镜像推送到Google Cloud Artifact Registry

将clonebuildregister用作软件包

>>> from clonebuildregister.clonebuildregister import clonebuildregister
>>> clonebuildregister("cbcunc", "timage", "develop", "testimage", "v1", "timage", "testimage", "v1", "us-east1", "bimage-project", "bimage-repository")
>>>

将clonebuildregister用作脚本

用法:clonebuildregister [-h] [-v] [-l PATH_TO_LOCAL_ENVIRONMENT] [-r PATH_TO_REMOTE_ENVIRONMENT] [-p PLATFORM] [-cn CLONE_NAME] [-dr DELETE_REPOSITORY]

[-di DELETE_ALL_DOCKER_IMAGES] github_org repo_name branch_or_tag local_image_name local_image_tag path_to_dockerfile target_image_name target_image_tag region gcloudProjectId repositoryName

位置参数
github_org:

存储库的GitHub组织

repo_name:

组织中的存储库名称

branch_or_tag:

存储库的分支或标签

local_image_name:

从Dockerfile创建的本地镜像名称

local_image_tag:

从Dockerfile创建的本地镜像标签(v1,1.0.1,version2.0)

path_to_dockerfile:

从克隆的存储库到docker文件的路径,通常是存储库名称

target_image_name:

目标镜像名称,即存储在Google Cloud工件注册表中的镜像名称

target_image_tag:

目标镜像标签,即存储在Google Cloud工件注册表中的镜像标签(v1,1.0.1,version2.0)

region:

镜像将在Google Cloud中存储的区域(例如us-east1,us,eu)

gcloudProjectId:

镜像将存储在其下的Google Cloud工件注册表的项目ID

repositoryName:

包含Docker镜像的Google Cloud工件注册表名称

选项

-h, --help

显示此帮助信息并退出

-v, --version

显示程序版本号并退出

-l PATH_TO_LOCAL_ENVIRONMENT, --path_to_local_environment PATH_TO_LOCAL_ENVIRONMENT

本地环境文件的路径,其中包含不显示在GitHub上的密钥(例如usr/home/clonebuildregister/.env)。默认为.(默认:)

-r PATH_TO_REMOTE_ENVIRONMENT, --path_to_remote_environment PATH_TO_REMOTE_ENVIRONMENT

GitHub上找到的虚拟环境文件的路径(例如usr/home/clonebuildregister/.env)。默认为.(默认:)

-p PLATFORM, --platform PLATFORM

镜像的目标平台,格式为os[/arch[/variant]](默认:)

-cn CLONE_NAME, –clone_name CLONE_NAME

克隆后GitHub存储库顶级文件夹的名称。(默认:)

-dr DELETE_REPOSITORY, –delete_repository DELETE_REPOSITORY

布尔值,告诉程序在将其注册到Google Cloud AR后删除克隆的GitHub存储库(默认:False)

-di DELETE_ALL_DOCKER_IMAGES, –delete_all_docker_images DELETE_ALL_DOCKER_IMAGES

布尔值,告诉程序在程序将镜像放置在Google Cloud工件注册表后删除本地系统上的所有Docker镜像。使用强制删除。类似于运行此 $ docker rmi -f $(docker images -aq)(默认:False)

示例

$ python -m clonebuildregister cbcunc timage develop testimage v1 timage testimage v1 us-east1 bimage-project bimage-repository

使用clonebuildregister模块

使用buildImage模块
>>> from clonebuildregister.buildImage import buildImage
>>> image = buildImage("testimage:v1","") # if Dockerfile in current directory, use 2nd argument as target directory
>>>
使用cloneRepo模块
>>> from clonebuildregister.cloneRepo import cloneRepo
>>> cloneRepo("cbcunc", "timage", "develop") # github_org, repo_name, branch_or_tag
>>>
使用带有环境变量copy的cloneRepo模块
>>> from clonebuildregister.cloneRepo import cloneRepo
>>> cloneRepo("cbcunc", "timage", "develop", "path_to_secrets", "path_in_repo_to_env_file") # github_org, repo_name, branch_or_tag
>>>
使用registerImage模块
>>> # don't forget to authenticate to gcloud within your shell before trying this command
>>> from clonebuildregister.registerImage import registerImage
>>> response = registerImage("testimage", "v2", "test-image-out", "v1", "us-east1", "bimage-project", "bimage-repository")
>>>

如何以开发者的身份配置clonebuildregister与gcloud

  1. https://cloud.google.com创建Google Cloud账户

  2. 创建一个名为bimage-project的新项目

  3. 转到Google Cloud工件注册表,创建一个名为bimage-repository的存储库,确保存储库区域为us-east1

  4. 从那里转到您克隆bimage的终端,确保您已安装gcloud CLI https://cloud.google.com/sdk/docs/install

  5. 确保将其添加到路径并运行 $ gcloud init,确保选择bimage-project

  6. 同时确保运行 $ gcloud auth login,如果需要的话

  7. 确保 $ cat ~/.docker/config.json包含us-east1。如果不包含,请运行 $ gcloud auth configure-docker us-east1-docker.pkg.dev以添加它。

  8. 假设您也在后台运行了docker,并且已经运行了$ python setup.py develop,则测试用例现在应该可以正常工作。

安装Python依赖项

  1. 导航到clonebuildregister顶级文件夹

  2. 创建一个Python环境,以免您的默认环境被混乱

  3. 使用$ pip install . 安装依赖项。(不包括pytest或tox,请参阅“运行测试部分”

  4. 确保您已安装Docker。

运行测试

  1. 导航到clonebuildregister顶级文件夹

  2. 确保您已安装google cloud、docker和所需依赖项。

  3. 确保clonebuildregister/test/testing_variables.py包含您设置的正确值。

  4. $ pip install -e ‘.[dev]’

  5. 运行$ pytest在本地环境中运行测试

  6. 运行$ tox来运行Python环境3.8、3.9、3.10、3.11和3.12的测试。包括linting、类型检查和样式检查

  7. 运行$ tox -e style仅进行样式检查

  8. $ tox -e lint仅进行linting。

  9. $ tox -e type仅进行类型检查

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

clonebuildregister-0.0.7.tar.gz (17.9 kB 查看哈希)

上传时间

构建分发

clonebuildregister-0.0.7-py3-none-any.whl (13.5 kB 查看哈希)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面