一个用于克隆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
在https://cloud.google.com创建Google Cloud账户
创建一个名为bimage-project的新项目
转到Google Cloud工件注册表,创建一个名为bimage-repository的存储库,确保存储库区域为us-east1
从那里转到您克隆bimage的终端,确保您已安装gcloud CLI https://cloud.google.com/sdk/docs/install
确保将其添加到路径并运行 $ gcloud init,确保选择bimage-project
同时确保运行 $ gcloud auth login,如果需要的话
确保 $ cat ~/.docker/config.json包含us-east1。如果不包含,请运行 $ gcloud auth configure-docker us-east1-docker.pkg.dev以添加它。
假设您也在后台运行了docker,并且已经运行了$ python setup.py develop,则测试用例现在应该可以正常工作。
安装Python依赖项
导航到clonebuildregister顶级文件夹
创建一个Python环境,以免您的默认环境被混乱
使用$ pip install . 安装依赖项。(不包括pytest或tox,请参阅“运行测试部分”
确保您已安装Docker。
运行测试
导航到clonebuildregister顶级文件夹
确保您已安装google cloud、docker和所需依赖项。
确保clonebuildregister/test/testing_variables.py包含您设置的正确值。
$ pip install -e ‘.[dev]’
运行$ pytest在本地环境中运行测试
运行$ tox来运行Python环境3.8、3.9、3.10、3.11和3.12的测试。包括linting、类型检查和样式检查
运行$ tox -e style仅进行样式检查
$ tox -e lint仅进行linting。
$ tox -e type仅进行类型检查
项目详情
clonebuildregister-0.0.7.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d61e0995fa33dcf02b5001bc6d2d42c43e5a1ff5ddfadcf4d4e2bd57f292724 |
|
MD5 | b536a60be31ddc6f05c454028c1185af |
|
BLAKE2b-256 | e380c6873a8db74fe516e5dcc8bd72043d187984793738f542b3c2158a471ef1 |
clonebuildregister-0.0.7-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dc3657c570ba8161ed4e1775e169799ca59aaca5b5e610d7078bacb8d432c071 |
|
MD5 | 2c52e9d77f263e8591f45544d296181f |
|
BLAKE2b-256 | df09fdf28ba087e4bc89f9eaa6c66fdc6d41efac240fcddfc4552525b25b4456 |