{"id":23683506,"url":"https://github.com/zanetworker/docktorino","last_synced_at":"2025-09-02T11:31:33.862Z","repository":{"id":64307811,"uuid":"127557738","full_name":"zanetworker/docktorino","owner":"zanetworker","description":"Real-time continious testing tool for your docker builds helping you containerize with confidence!","archived":false,"fork":false,"pushed_at":"2018-04-16T09:13:46.000Z","size":26472,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-15T04:41:30.890Z","etag":null,"topics":["docker","docker-image","docker-testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zanetworker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-31T18:02:13.000Z","updated_at":"2023-02-01T16:21:06.000Z","dependencies_parsed_at":"2023-01-15T11:00:47.376Z","dependency_job_id":null,"html_url":"https://github.com/zanetworker/docktorino","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanetworker%2Fdocktorino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanetworker%2Fdocktorino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanetworker%2Fdocktorino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zanetworker%2Fdocktorino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zanetworker","download_url":"https://codeload.github.com/zanetworker/docktorino/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231780340,"owners_count":18425543,"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","docker-image","docker-testing"],"created_at":"2024-12-29T20:08:02.954Z","updated_at":"2024-12-29T20:08:03.589Z","avatar_url":"https://github.com/zanetworker.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docktorino\n\n[![Build Status](http://zanetworkercicd.eu.ngrok.io/api/badges/zanetworker/docktorino/status.svg?branch=master)](http://zanetworkercicd.eu.ngrok.io/api/badges/zanetworker/docktorino/status.svg?branch=master)\n\nDocktorino is a real-time continuous testing tool for your docker builds, helping you containerize with confidence!\n\nWhen building Docker images it is sometimes tricky to assert the image behavior, for example, whether the contents of the image you built is correct, or that commands can execute correctly inside your container ( maybe you forgot to set your binary's PATH).\n\nDocktrino makes these types of assertions easy to define when building your Docker images. It then listens to your Docker builds and triggers these tests on the spot to notify you if you have done something wrong, or if your container image is misbehaving.\n\nCheck blog post [here](http://www.adelzaalouk.me/2018/docktorino/). \n\n\u003c!-- TOC --\u003e\n\n- [Docktorino](#docktorino)\n\t- [Getting Started](#getting-started)\n\t\t- [Clone and build](#clone-and-build)\n\t\t- [Download from the releases](#download-from-the-releases)\n\t- [Usage](#usage)\n\t- [Contributing](#contributing)\n\t- [Authors](#authors)\n\t- [License](#license)\n\n\u003c!-- /TOC --\u003e\n\n## Getting Started\n\nTo get started with `Docktorino`, you can download the corresponding binary for your OS (Darwin, Linux, Windows) from the releases section. Or you can clone this repository and build the project locally.\n\n### Clone and build\n\nYou need to install `make` and `Go` on your system before proceeding.\n\n```bash\ngit clone https://github.com/zanetworker/docktorino.git\ncd docktorino\n\n# build docktorino binary if you have go installed\nmake OS=\u003cdarwin|linux|windows\u003e install\n\n# execute docktorino for command overview\ndocktorino\n\n# build docktorino binary \nmake OS=\u003cdarwin|linux|windows\u003e dry\n\n# execute docktorino command for overview\n./docktorino\n```\n\n### Download from the releases\n\nThe binary is available on the releases section of this repo. Please note that it has been only tested on OSX.\n\n\n## Usage\n\nDocktorino uses project [Dockument](https://github.com/zanetworker/dockument) to fetch important information about the image in questions, in particularly, testing info. an Example Dockerfile would look as follows: \n\n```dockerfile\nFROM golang:alpine as builder\n \n###  Describe container tests based on container structure tests from google!\nLABEL api.TEST.command=\"\"\\\n      api.TEST.command.name=\"go version\"\\\n      api.TEST.command.command=\"go\"\\\n      api.TEST.command.args=\"version\"\\\n      api.TEST.command.expectedOutput=\"go version\"\n\n# Add file and check it's contents!\nLABEL api.TEST.fileExistence=\"\"\\\n      api.TEST.fileExistence.name=\"Dockumentation Check\"\\\n      api.TEST.fileExistence.path=\"/dockumentation.md\"\\\n      api.TEST.fileExistence.shouldExist=\"true\"\\\n      api.TEST.fileExistence.permissions=\"\"\nADD dockumentation.md /dockumentation.md\n\n\n# Assert that environment variables are correctly defined!\nLABEL api.TEST.metadata=\"\"\\\n      api.TEST.metadata.env=\"GOPATH=/go,PATH=/go/bin:/usr/local/go/bin:$PATH\"\\\n      api.TEST.metadata.exposedPorts=\"\"\\\n      api.TEST.metadata.volumes=\"\"\\\n      api.TEST.metadata.cmd=\"\"\\\n      api.TEST.metadata.workdir=\"\"\nENV PATH /go/bin:/usr/local/go/bin:$PATH\nENV GOPATH /go\n\n``` \n\nThis Dockerfile defines three tests: \n- Command test to check the output of `go version`. \n- a FileExistence tests to make sure that a document we add to the image is where it should be.\n- a metadata tests to make sure that Environment variables are correctly defined within the image.\n\nThese tests styles are based on the [GCP container-structure-tests](https://github.com/GoogleCloudPlatform/container-structure-test) project tests. \n\nCurrently there is only one command available, this command starts `Docktorino` for the image of choice. For example `docktorino -i \"repo/image:tag\"` will start listening for new builds for \"repo/image:tag\" and trigger the tests defined in the Dockerfile.\n\n```\nUsage:\n  docktorino start [flags]\n\nFlags:\n  -h, --help           help for start\n  -i, --image string   the image you wish to trigger tests for\n  -q, --quiet          quiet surpress output\n  -v, --verbose        verbose testing output\n\nGlobal Flags:\n      --home string   location of your docktorino config. Overrides $DOCKTORINO_HOME  (default \"/Users/adelias/.Docktorino\"\n``` \n\nFor a complete demo please check this demo [video](https://youtu.be/lU7hpP2nfPw):\n\n[![Docktorino Demo](./demo/2018-04-04-11-05-16.png)](https://youtu.be/lU7hpP2nfPw)\n\n\u003c!-- ![](./demo/docktrino_demo.gif) --\u003e\n\n## Contributing\n\n\u003c!-- [CONTRIBUTING.md](https://gist.github.com/PurpleBooth/b24679402957c63ec426) --\u003e\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.\n\n## Authors\n\nSee also the list of [contributors](https://github.com/zanetworker/dockument/graphs/contributors) who participated in this project.\n\n## License\n\nThis project is licensed under the Apache License - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanetworker%2Fdocktorino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzanetworker%2Fdocktorino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzanetworker%2Fdocktorino/lists"}