.dockerignore file generator based on .gitignore file(s)
Project description
generate-dockerignore-from-gitignore
As the name implies, this package generates a .dockerignore for you based on .gitignore rules
found in your source tree.
Why generate this file, you ask? Because there are a number of differences between
.dockerignore and .gitignore rule processing which can make it non-trivial to make
your Docker file tree match your local git tree.
Generating your .dockerignore file based on your configured .gitignore rules means you only have
to think about which files should not be distributed with your project only once. This also can
promote reproducible builds by ensuring that the only files your Docker context has access to are
those files that are tracked by your git repository.
The following differences between .dockerignore vs .gitignore processing are handled by this tool:
| behavior | .gitignore | .dockerignore |
|---|---|---|
| plain patterns without slashes or wildcards | ⏬️ match recursively | ⬆️ match top-level only |
| separate per-directory ignore files | ✅ allowed | ❌ not allowed |
| local .git/info/exclude file | ✅ included | - |
| global core.excludesFile file | ✅ included | - |
The code's handling of these behavioral differences is tested using actual git and Docker calls, followed by validation that the resultant git source trees are equal to the Docker build contexts.
References:
- https://git-scm.com/docs/gitignore
- https://docs.docker.com/engine/reference/builder/#dockerignore-file
Installation
pip install generate-dockerignore-from-gitignore
Usage
usage: generate-dockerignore [-h] [-C DOCKER_ROOT] [-v] [-o OUTPUT] [PATH ...]
.dockerignore file generator based on .gitignore file(s)
positional arguments:
PATH gitignore file(s), or directories under git source control (which will be
searched for **/.gitignore).
options:
-h, --help show this help message and exit
-C DOCKER_ROOT, --docker-root DOCKER_ROOT
Docker context directory to chdir into before continuing
-v, --verbose Output per-file logging to stderr
-o OUTPUT, --output OUTPUT
File path for generated .dockerignore rule output, or - for stdout
(default: .dockerignore)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file generate_dockerignore_from_gitignore-0.1.3.tar.gz.
File metadata
- Download URL: generate_dockerignore_from_gitignore-0.1.3.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9be8a93883bae92352dd77643c553b1d6428283f41afed9a6e4623437d1cb4b6
|
|
| MD5 |
a1ca7c37a216443a196dfc1f63c155e1
|
|
| BLAKE2b-256 |
20a7fdccc4e085f3b5c8fa0f377c38010f1b917627b06ccafbb2a54c9a098645
|
File details
Details for the file generate_dockerignore_from_gitignore-0.1.3-py2.py3-none-any.whl.
File metadata
- Download URL: generate_dockerignore_from_gitignore-0.1.3-py2.py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.31.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
887dca2b7ddfa5107c04d898647d780ce4bca49e7adac404e60c41881b25dd3a
|
|
| MD5 |
ddaea6db6503defaba9eb2199538a2fe
|
|
| BLAKE2b-256 |
14681cb421410c723e881fefb895ddebe40e7cb0e40f8cf89eb687105d52d0ac
|