{"id":13905056,"url":"https://github.com/fiunchinho/dockerize-me","last_synced_at":"2025-08-21T05:32:21.483Z","repository":{"id":145323069,"uuid":"59907858","full_name":"fiunchinho/dockerize-me","owner":"fiunchinho","description":"This tool lets you Dockerize your applications using best practices to define your Dockerfile and Docker entry point files.","archived":false,"fork":false,"pushed_at":"2016-11-20T20:04:59.000Z","size":15,"stargazers_count":211,"open_issues_count":1,"forks_count":26,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-12-10T07:12:38.486Z","etag":null,"topics":["docker"],"latest_commit_sha":null,"homepage":"","language":"Python","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/fiunchinho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-05-28T17:59:43.000Z","updated_at":"2024-10-03T05:12:20.000Z","dependencies_parsed_at":"2023-11-11T00:31:10.791Z","dependency_job_id":null,"html_url":"https://github.com/fiunchinho/dockerize-me","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/fiunchinho%2Fdockerize-me","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiunchinho%2Fdockerize-me/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiunchinho%2Fdockerize-me/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiunchinho%2Fdockerize-me/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fiunchinho","download_url":"https://codeload.github.com/fiunchinho/dockerize-me/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230494917,"owners_count":18235046,"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"],"created_at":"2024-08-06T23:01:09.184Z","updated_at":"2024-12-19T20:07:14.046Z","avatar_url":"https://github.com/fiunchinho.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Dockerize Me\n[![MicroBadger](https://images.microbadger.com/badges/image/fiunchinho/dockerize-me.svg)](https://microbadger.com/images/fiunchinho/dockerize-me \"Get your own image badge on microbadger.com\")\n[![Docker Hub](https://img.shields.io/badge/docker-ready-blue.svg)](https://hub.docker.com/r/fiunchinho/dockerize-me/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/fiunchinho/dockerize-me.svg?maxAge=2592000)]()\n[![Docker Stars](https://img.shields.io/docker/stars/fiunchinho/dockerize-me.svg?maxAge=2592000)]()\n\nTired of copy/pasting Dockerfiles around? Not sure about best practices for Dockerfiles or Docker entry points?\nThis tool lets you Dockerize your applications using [best practices](https://github.com/docker-library/official-images#review-guidelines) to define your Dockerfile and Docker entry point files.\n\nYou just need to mount your app into the `/app` folder and follow the instructions.\nIt'll generate a valid `Dockerfile`, and, if needed, a valid `docker-entrypoint.sh` file to be used as entry point.\n\n## Example\nYou can run this utility with Docker\n\n```bash\n$ docker run -it --rm -v $PWD:/app fiunchinho/dockerize-me\n\nYour email: alice@wonderland.com\nYour full name: Alice Wonderland\nDoes the container run Java? [False] \nWhich file/folder needs to be copied to the container? It'll be copied into '/app' [.] \nWhich port do you want to expose? [No ports exposed] \nDo you need an entrypoint to do stuff before running the app? [False] \nWhich command needs to be executed to start your application? Your app lives in '/app' python /app/dockerize-me/dockerize.py\nSystem dependencies (f.e python=2.7.11-r3 py-pip=7.1.2-r0): python=2.7.11-r3 py-pip=7.1.2-r0\nApp dependencies command (f.e pip install -r requirements.txt): [False] pip install -r requirements.txt\n\nYou can build your container running the following command: \ndocker build \\ \n    --build-arg vcs_type=git \\ \n    --build-arg vcs_url=`git config --get remote.origin.url` \\ \n    --build-arg vcs_branch=`git rev-parse --abbrev-ref HEAD` \\ \n    --build-arg vcs_ref=`git rev-parse HEAD` \\ \n    --build-arg build_date=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\\n    -t your_image .\n```\n\nThis has generated a Dockerfile.\nIf you have selected to use a docker entrypoint, a file called `docker-entrypoint.sh` will be generated. Before building your image, give execution permissions to this file.\n\n## Motivation\nThis project allow people to easily create nice Dockerfiles to dockerize their applications. Besides, it's a way to document how to craft good Docker images.\n\n## Images\nThis tool uses the following images to keep your Docker images as tiny as possible\n- [anapsix/alpine-java](https://hub.docker.com/r/anapsix/alpine-java/) When selecting a Java project\n- [alpine](https://hub.docker.com/_/alpine/) For the rest\n\n## Init system\nWe use [tini](https://github.com/krallin/tini) as init system, so you don't have problems [with signals or zombie processes](https://github.com/docker-library/official-images#init).\n\n## Metadata\nAll our images have special labels that help us determine which is inside the image. This tool also copies the Dockerfile used to build the image inside the container.\nThe labels added to the images are\n- `org.label-schema.vcs-type` type of vcs like Git or Subversion\n- `org.label-schema.vcs-url` url of the git repository\n- `org.label-schema.vcs-ref` sha1 hash of the commit when the image was built\n- `org.label-schema.vcs-branch` git branch when the image was built\n- `org.label-schema.docker.dockerfile` path to the Dockerfile inside the container. Normally `/Dockerfile`\n- `org.label-schema.build-date` date and time when the image was built\n\nOnce you've generated the `Dockerfile`, you can build your image with\n\n```bash\ndocker build \\ \n    --build-arg vcs_type=git \\ \n    --build-arg vcs_url=`git config --get remote.origin.url` \\ \n    --build-arg vcs_branch=`git rev-parse --abbrev-ref HEAD` \\ \n    --build-arg vcs_ref=`git rev-parse HEAD` \\ \n    --build-arg build_date=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\ \n    -t your_image_name .\n```\n\n## Developer Experience\n[Trying to make life easier for developers](https://github.com/docker-library/official-images#consistency), images that need a docker entry point and images that don't, they both accept commands the same way. Images created with this tool let you\n- Run the default command `docker run -it --rm -v $PWD:/app fiunchinho/dockerize-me`\n- Get an shell `docker run -it --rm -v $PWD:/app fiunchinho/dockerize-me sh`\n- Use a different command `docker run -it --rm -v $PWD:/app fiunchinho/dockerize-me python --version`\n\n## Credits\nI learn many of these concepts thanks to [garethr](https://twitter.com/garethr), [jpetazzo](https://twitter.com/jpetazzo) or [jbaruch](https://twitter.com/jbaruch). You should definitely listen to them.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiunchinho%2Fdockerize-me","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiunchinho%2Fdockerize-me","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiunchinho%2Fdockerize-me/lists"}