Skip to main content

No project description provided

Project description

whaler

PyPI versions PyPI versions

What? A command-line tool for visually investigating the disk usage of docker images

Why? Large images are slow to move and expensive to store. They cost developer productivity by lengthening devops tasks and often contain unnecessary data

Who is this for? Primarily for engineers working with images containing Python packages.

User Stories

This tool should allow you to answer questions such as:

  1. Which file types are occupying the most disk space?
  2. Which are my largest Python packages?
  3. What are my unknown causes of high disk usage?

Quick start

pip install whaler

Run against a local directory

➜ whaler .venv
Running bash -c cd .venv && du -a -k
Done. Serving output at http://localhost:8000 (ctrl+c to exit)
Running python3 -m http.server 8000 --directory=_whaler/html

Run against a docker image

The tool will pull the image first if it is not present.

whaler --image='hl:latest' /
Running docker run --rm --entrypoint=du --workdir=/ hl:latest -a -k
Ignoring what seems to be non-fatal error(s):
du: cannot access './proc/1/task/1/fd/4': No such file or directory
du: cannot access './proc/1/task/1/fdinfo/4': No such file or directory
du: cannot access './proc/1/fd/3': No such file or directory
du: cannot access './proc/1/fdinfo/3': No such file or directory


Done. Serving output at http://localhost:8000 (ctrl+c to exit)
Running python3 -m http.server 8000 --directory=_whaler/html

HTML Report

Play with a hosted demo

Limitations

  1. Platform: whaler uses du to gather disk usage data. It must be present in your docker image
  2. Scale: I have tested the web UI with up to 500,000 file system nodes with du output of up to ~100MB.

Alternatives/Complements to this tool:

  1. Whaler can tell you what is taking up space in the final layer of your Docker image, but you may have intermediate layers which are contributing to the image size. For diving through the layers, use dive
    • Related: read up on multi-stage builds to understand how to mitigate the problem of intermediate layers bloating your image.
  2. For investigating disk usage in non-docker directories, Disk Inventory X is a great tool on OS X which I have based whaler on.

Developing

See .github/workflows/test.yml for the development platform and setup.

For UI, see whaler-ui

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

whaler-0.1.2.tar.gz (497.6 kB view details)

Uploaded Source

Built Distribution

whaler-0.1.2-py3-none-any.whl (495.3 kB view details)

Uploaded Python 3

File details

Details for the file whaler-0.1.2.tar.gz.

File metadata

  • Download URL: whaler-0.1.2.tar.gz
  • Upload date:
  • Size: 497.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.7

File hashes

Hashes for whaler-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8be052108ee5ca219ceb5aa65c1db061dcc5193ed1ac82ad43c86cea15769332
MD5 e63855f9dbb3f89d065afb579c98da05
BLAKE2b-256 9e19169d6b3c80e73780b798625b04ba9b282bba30f9dfbb4dd0eb61fb44aa71

See more details on using hashes here.

File details

Details for the file whaler-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: whaler-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 495.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.7

File hashes

Hashes for whaler-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 92e502a1eba0da67ec5ccf10cc1bacabd80f38303b826db810037247e0cfe3c9
MD5 779d9849bb1960038fc2ccb5f30acc40
BLAKE2b-256 bcdfda32ad9d13f412fcd1876aff956477abcb16357767c2e976f23176076bc5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page