No project description provided
Project description
docker-image-size-limit
Limit your docker
image size with a simple CLI command.
Perfect to be used inside your CI process.
Read the announcing post.
Installation
pip install docker-image-size-limit
Or use our Github Action or pre-built docker image.
Usage
We support just a single command:
$ disl your-image-name:label 300MiB
your-image-name:label exceeds 300MiB limit by 114.4 MiB
Add --max-layers
flag to also lint the maximum amount of layers possible
in your image:
# If your image has 7 layers:
$ disl your-image-name:label 300MiB --max-layers=5
your-image-name:label exceeds 5 maximum layers by 2
# If your image has 5 layers:
$ disl your-image-name:label 300MiB --max-layers=5
# ok!
Options
You can specify your image as:
- Image name:
python
- Image name with tag:
python:3.6.6-alpine
You can specify your size as:
- Raw number of bytes:
1024
- Human-readable megabytes:
30 MB
or30 MiB
- Human-readable gigabytes:
1 GB
or1 GiB
- Any other size supported by
humanfriendly
Programmatic usage
You can also import and use this library as python
code:
from docker import from_env
from docker_image_size_limit import check_image_size
oversize = check_image_size(from_env(), 'image-name:latest', '1 GiB')
assert oversize < 0, 'Too big image!' # negative oversize - is a good thing!
We also ship PEP-561 compatible type annotations with this library.
GitHub Action
You can also use this check as a GitHub Action:
- uses: wemake-services/docker-image-size-limit@master
with:
image: "$YOUR_IMAGE_NAME"
size: "$YOUR_SIZE_LIMIT"
Here's an example.
Docker Image
We have a pre-built image available.
First, pull our pre-built docker image:
docker pull wemakeservices/docker-image-size-limit
Then you can use it like so:
docker run -v /var/run/docker.sock:/var/run/docker.sock --rm \
-e INPUT_IMAGE="$YOUR_IMAGE_NAME" \
-e INPUT_SIZE="$YOUR_SIZE_LIMIT" \
wemakeservices/docker-image-size-limit
Should I use it?
You can use this script instead:
LIMIT=1024 # adjust at your will
IMAGE='your-image-name:latest'
SIZE="$(docker image inspect "$IMAGE" --format='{{.Size}}')"
test "$SIZE" -gt "$LIMIT" && echo 'Limit exceeded'; exit 1 || echo 'Ok!'
But I prefer to reuse tools over
custom bash
scripts here and there.
License
MIT.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file docker_image_size_limit-2.0.0.tar.gz
.
File metadata
- Download URL: docker_image_size_limit-2.0.0.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 591703b475964fd12d9b7c04fb5b6d71a6306e45f3bc10fef8e92d62520a12f1 |
|
MD5 | cbb9f91ffa98338a9862ffaae1a3d2b6 |
|
BLAKE2b-256 | 57081a8338dc0f05649b553de9474797066fc34f1a87a105eb9b213a2fc1e1df |
File details
Details for the file docker_image_size_limit-2.0.0-py3-none-any.whl
.
File metadata
- Download URL: docker_image_size_limit-2.0.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52f16a1e628f97842fe0c6bf9f0c5a64a7a18e718c9a3adf41e659233667ec37 |
|
MD5 | d8fbc52eb8d8c8456345735afb891031 |
|
BLAKE2b-256 | d45872d88aa79ceb6cbc20e8e99ff72b25d0d341978295ed68d17f2aafedb97d |