Skip to content
🐳 Keep an eye on your docker image size and prevent it from growing too big
Python Dockerfile Shell
Use this GitHub Action with your project

Add this Action to an existing workflow or create a new one.

View on Marketplace
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Moves from travis to Github Actions Apr 15, 2020
docker_image_size_limit Moves from travis to Github Actions Apr 15, 2020
scripts Moves from travis to Github Actions Apr 15, 2020
tests Moves from travis to Github Actions Apr 15, 2020
.editorconfig Initial commit Mar 3, 2019
.gitignore Initial commit Mar 3, 2019
CHANGELOG.md Basic github action Mar 18, 2020
CONTRIBUTING.md Version 0.2.0 pre-release Sep 15, 2019
Dockerfile Version 0.3.0 release Mar 18, 2020
LICENSE Initial release Mar 3, 2019
README.md Moves from travis to Github Actions Apr 15, 2020
action.yml Basic github action Mar 18, 2020
poetry.lock Bump docker from 4.2.0 to 4.2.1 (#108) Jun 3, 2020
pyproject.toml Bump pytest-randomly from 3.3.1 to 3.4.0 (#107) May 28, 2020
setup.cfg Update setup.cfg May 25, 2020

README.md

docker-image-size-limit

wemake.services Build status codecov Python Version wemake-python-styleguide

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

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 or 30 MiB
  • Human-readable gigabytes: 1 GB or 1 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 Gihub 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.

You can’t perform that action at this time.