{"id":13446826,"url":"https://github.com/pdacity/docker_gc","last_synced_at":"2025-03-21T16:32:52.184Z","repository":{"id":65318328,"uuid":"226942296","full_name":"pdacity/docker_gc","owner":"pdacity","description":"Garbage collector for Docker Swarm / Автоматическая сборка мусора для Docker и Docker Swarm","archived":false,"fork":false,"pushed_at":"2024-02-09T17:50:47.000Z","size":26,"stargazers_count":97,"open_issues_count":0,"forks_count":20,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-28T11:43:36.641Z","etag":null,"topics":["docker-cloud","docker-gc","docker-service","docker-swarm"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"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/pdacity.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}},"created_at":"2019-12-09T18:43:22.000Z","updated_at":"2024-09-22T06:40:01.000Z","dependencies_parsed_at":"2024-01-07T10:50:49.929Z","dependency_job_id":"d8b1a7f3-7bf4-4ac3-888d-e2be9b125fca","html_url":"https://github.com/pdacity/docker_gc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdacity%2Fdocker_gc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdacity%2Fdocker_gc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdacity%2Fdocker_gc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pdacity%2Fdocker_gc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pdacity","download_url":"https://codeload.github.com/pdacity/docker_gc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244829624,"owners_count":20517346,"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-cloud","docker-gc","docker-service","docker-swarm"],"created_at":"2024-07-31T05:01:00.846Z","updated_at":"2025-03-21T16:32:51.864Z","avatar_url":"https://github.com/pdacity.png","language":"Shell","readme":"# Garbage collector for Docker Swarm\n\n![Awesome Docker](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)\n![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/pdacity/docker_gc)\n![Docker stuff](https://img.shields.io/badge/%F0%9F%90%B3-useful%20stuff-lightgray)\n![PizzaWare](https://img.shields.io/badge/%F0%9F%8D%95-PizzaWare-orange)\n![Tea powered](https://img.shields.io/badge/%F0%9F%8D%B5-tea%20powered-yellowgreen)\n\n## About \n\nImage for automatic removing unused Docker Swarm objects. Also works just as Docker Service.\n\nBy default these types of objects are deleted:\n- container\n- volume\n- network\n\n## Configuration\n\nSet config parameters in the yml file:\n* AGE - the max time for resource to be unused (format: timestamp or Go duration strings (10m, 1h30m))\n* SLEEP - the time frame between checking for unused objects (format: timestamp or Go duration strings (10m, 1h30m))\n* STICKY_LABEL - do not remove image with this label\n\n### Building image with `STICKY_LABEL`\n\nIf you need to protect an image from automatic deletion use LABEL directive, for example: `persistent_image=true`. To do it just create Dockerfile for you image \u003cIMAGENAME\u003e.\n\n```yaml\nFROM \u003cIMAGENAME\u003e\nLABEL persistent_image=true\n```\n\nBefore run the stack build the image from Dockerfile mentioned above:\n\ndocker-compose.yaml\n```yaml\n...\n  \u003cSERVICENAME\u003e\n    container_name: \u003cCONTAINERNAME\u003e\n    build:\n      context: .\n...\n\n```\n* `\u003cIMAGENAME\u003e` - the image which is protected from automatic deletion\n* `\u003cSERVICENAME\u003e` - service name in the stack\n* `\u003cCONTAINERNAME\u003e` - container name (optionally)\n\nAlso you should set `STICKY_LABEL: persisten_image=true` in the docker_gc run variables\n\n## Run\n\n* docker-stack.yml - to deploy the service in Docker Swarm\n* docker-compose.yml - to run just a Docker Service\n\n## Docker Hub\n\nPrebuild docker image on hub.docker.com - https://hub.docker.com/r/pdacity/docker_gc\n\n\n---\n\n# Сборщик мусора для Docker Swarm и Docker\n\n![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/pdacity/docker_gc) \n![Docker stuff](https://img.shields.io/badge/%F0%9F%90%B3-useful%20stuff-lightgray) \n![PizzaWare](https://img.shields.io/badge/%F0%9F%8D%95-PizzaWare-orange) \n![Tea powered](https://img.shields.io/badge/%F0%9F%8D%B5-tea%20powered-yellowgreen)\n\n## О проекте \n\nОбраз для автоматической очистки неиспользуемых обьектов в Docker Swarm (работает и просто как Docker Service )\n\nПо умолчанию удаляются следующие типы обьектов:\n- container\n- volume\n- network\n\n## Настройка \n\nДля работы необходимо задать параметры yml файле:\n\n* AGE - срок в формате timestamp или Go duration strings (10m, 1h30m) после которого неиспользуемые ресурсы будут удалены\n* SLEEP - периодичность проверки в формате timestamp или Go duration strings (10m, 1h30m)\n* STICKY_LABEL - не удалять образа с этой меткой\n\n### Сборка образа с `STICKY_LABEL`\n\nВ случае если необходимо защитить какой либо из образов от автоматического удаления необходимо добавить к образу  `label`, например `persistent_image=true` Для этого создайте Dockerfile для образа `\u003cIMAGENAME\u003e`\n\n```yaml\nFROM \u003cIMAGENAME\u003e\nLABEL persistent_image=true\n```\n\nПри запуске стека необходимо собрать образ из приведенного выше  Dockerfile\n\ndocker-compose.yaml\n```yaml\n...\n  \u003cSERVICENAME\u003e\n    container_name: \u003cCONTAINERNAME\u003e\n    build:\n      context: .\n...\n\n```\nгде `\u003cIMAGENAME\u003e` - название образа который должен быть защищен от автоматического удаления, `\u003cSERVICENAME\u003e` - название сервиса в стеке, `\u003cCONTAINERNAME\u003e` имя контейнера (опционально)\n\nИ задайте `STICKY_LABEL: persistent_image=true` в переменных запуска docker_gc\n\n## Запуск\n\n* docker-stack.yml - для деплоя сервиса в  Docker swarm\n* docker-compose.yml - для запуска Docker Service\n\n## Docker Hub\n\nГотовый собранный образ на hub.docker.com - https://hub.docker.com/r/pdacity/docker_gc\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=pdacity/docker_gc\u0026type=Timeline)](https://star-history.com/#pdacity/docker_gc\u0026Timeline)\n\n--- \n\nReferences:\nEnglish version of the documentation - https://habr.com/en/users/AlexanderTyutin/\n\n    \n","funding_links":[],"categories":["Development with Docker","others","Shell"],"sub_categories":["Garbage Collection"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdacity%2Fdocker_gc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpdacity%2Fdocker_gc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpdacity%2Fdocker_gc/lists"}