{"id":16312770,"url":"https://github.com/erikmd/docker-keeper","last_synced_at":"2026-05-10T03:49:42.173Z","repository":{"id":246645653,"uuid":"655639420","full_name":"erikmd/docker-keeper","owner":"erikmd","description":"Mirror of https://gitlab.com/erikmd/docker-keeper: Tool to help maintain Docker Hub repositories of stable, dev, or nightly-build images from a YAML-specified, single-branch GitLab repository.","archived":false,"fork":false,"pushed_at":"2024-07-22T11:02:59.000Z","size":305,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T14:27:00.950Z","etag":null,"topics":["docker-compose","docker-coq","docker-hub","gitlab-ci","yaml"],"latest_commit_sha":null,"homepage":"https://gitlab.com/erikmd/docker-keeper/-/wikis/home","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erikmd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-06-19T09:49:14.000Z","updated_at":"2024-07-22T11:03:02.000Z","dependencies_parsed_at":"2024-06-29T11:21:51.396Z","dependency_job_id":"6c1c9d25-c139-496d-8c7e-bcb926bd6b55","html_url":"https://github.com/erikmd/docker-keeper","commit_stats":null,"previous_names":["erikmd/docker-keeper"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikmd%2Fdocker-keeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikmd%2Fdocker-keeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikmd%2Fdocker-keeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erikmd%2Fdocker-keeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erikmd","download_url":"https://codeload.github.com/erikmd/docker-keeper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250237831,"owners_count":21397400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","docker-coq","docker-hub","gitlab-ci","yaml"],"created_at":"2024-10-10T21:49:03.339Z","updated_at":"2026-05-10T03:49:42.140Z","avatar_url":"https://github.com/erikmd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# docker-keeper\n\nThis python script is devised to help maintain Docker Hub repositories\nof stable and dev (nightly build) Docker images from a YAML-specified,\nsingle-branch GitLab repository - typically created as a fork of the\nfollowing repo: \u003chttps://gitlab.com/erikmd/docker-keeper-template\u003e.\n\nThis script is meant to be run by GitLab CI.\n\nThis repository is thus [hosted on GitLab](https://gitlab.com/erikmd/docker-keeper), and [mirrored on GitHub](https://github.com/erikmd/docker-keeper) for more visibility.\n\n## Syntax\n\n```\nusage: keeper.py [-h] [--version] [--upstream-version]\n                 {generate-config,write-artifacts} ...\n\n§ docker-keeper\n\nThis python3 script is devised to help maintain Docker Hub repositories of\nstable and dev (from webhooks or for nightly builds) Docker images from a\nYAML-specified, single-branch Git repository - typically created as a fork of\nthe following GitLab repo: \u003chttps://gitlab.com/erikmd/docker-keeper-template\u003e.\nFor more details, follow the instructions of the README.md in your own fork.\nNote: this script is meant to be run by GitLab CI.\n\ndocker-keeper offers customizable propagate strategies (declarative cURL calls)\n\nIt supports both single modes given in variable CRON_MODE (and optionally ITEM)\nand multiple modes, from CLI as well as from HEAD's commit message, typically:\n$ git commit --allow-empty -m \"…\" -m \"docker-keeper: rebuild-all\"\n$ git commit -m \"docker-keeper: propagate: I1: minimal; propagate: I2: nightly\"\n$ git commit -m \"docker-keeper: propagate: ID: rebuild-all\"\n$ git commit -m \"docker-keeper: propagate: ID: rebuild-keyword: KW1,KW2\"\n$ git commit -m \"docker-keeper: propagate: ()\"\nIf the commit message (or equivalently, the CLI) contains propagate…,\nthen it overrides the automatic default propagation.\nIf the commit is rebuilt with the same SHA1 in a given branch,\nthen it switches to the default behavior (automatic propagate strategy).\n\noptions:\n  -h, --help            show this help message and exit\n  --version             show program's version number and exit\n  --upstream-version    show program's upstream version from\n                        https://gitlab.com/erikmd/docker-keeper and exit\n\nsubcommands:\n  {generate-config,write-artifacts}\n    generate-config     Print a GitLab CI YAML config to standard output. This\n                        requires files: - generated/build_data_chosen.json -\n                        generated/remote_tags_to_rm.json -\n                        generated/propagate.json\n    write-artifacts     Generate artifacts in the 'generated' directory. This\n                        requires having file 'images.yml' in the current\n                        working directory.\n```\n\u0026\n```\nusage: keeper.py write-artifacts [-h] [--debug] [--minimal] [--nightly]\n                                 [--rebuild-all] [--rebuild-files FILE]\n                                 [--rebuild-tags FILE]\n                                 [--rebuild-keywords FILE]\n                                 [--rebuild-file NAME1,NAME2]\n                                 [--rebuild-tag TAG1,TAG2]\n                                 [--rebuild-keyword KW1,KW2]\n                                 [--propagate 'CHILD-REPO: COMMAND']\n\nGenerate artifacts in the 'generated' directory. This requires having file\n'images.yml' in the current working directory.\n\noptions:\n  -h, --help            show this help message and exit\n  --debug               help debugging by printing more info (especially\n                        regarding argparse)\n  --minimal             default option, can be omitted, kept for backward\n                        compatibility\n  --nightly             trigger builds that have the 'nightly: true' flag\n  --rebuild-all         rebuild all images\n  --rebuild-files FILE  (deprecated) rebuild images with Dockerfile mentioned\n                        in FILE (can be supplied several times)\n  --rebuild-tags FILE   (deprecated) rebuild images with tag mentioned in FILE\n                        (can be supplied several times)\n  --rebuild-keywords FILE\n                        (deprecated) rebuild images with keyword mentioned in\n                        FILE (can be supplied several times)\n  --rebuild-file NAME1,NAME2\n                        rebuild images with Dockerfile mentioned in CLI comma-\n                        separated list (can be supplied several times)\n  --rebuild-tag TAG1,TAG2\n                        rebuild images with tag mentioned in CLI comma-\n                        separated list (can be supplied several times)\n  --rebuild-keyword KW1,KW2\n                        rebuild images with keyword mentioned in CLI comma-\n                        separated list (can be supplied several times)\n  --propagate 'CHILD-REPO: COMMAND'\n                        manually specify to propagate 'minimal', 'nightly',\n                        'rebuild-all', or 'rebuild-keyword: KW1,KW2' commands\n                        to children docker-keeper repositories; note that you\n                        can use '--propagate=()' to disable propagation fully,\n                        independently of the other occurrences of this option;\n                        if there is no occurrence of this option (in CLI nor\n                        in HEAD's commit message), docker-keeper will apply\n                        the propagate strategy defined in the images.yml file\n                        (can be supplied several times)\n```\n\u0026\n```\nusage: keeper.py generate-config [-h]\n\n    Print a GitLab CI YAML config to standard output.\n    This requires files:\n    - generated/build_data_chosen.json\n    - generated/remote_tags_to_rm.json\n    - generated/propagate.json\n\noptions:\n  -h, --help  show this help message and exit\n```\n\n## Usage\n\n* Fork \u003chttps://gitlab.com/erikmd/docker-keeper-template\u003e.\n\n* Follow the instructions from the [docker-keeper wiki](https://gitlab.com/erikmd/docker-keeper/-/wikis/home#initial-setup).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikmd%2Fdocker-keeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferikmd%2Fdocker-keeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferikmd%2Fdocker-keeper/lists"}