davidcaste / docker-pyinstaller

pyinstaller + staticx in a container

Home Page:https://hub.docker.com/r/pschmitt/pyinstaller

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pyinstaller

GitHub Actions CI Docker Hub

With this container you can run pyinstaller over your projects. It uses the oldest possible debian version (ie. docker tag) so that the resulting binaries are compatible with a wider range of linux OSes.

Usage example

docker run -it --rm \
  -v "$PWD:/app" \
  -e "DEPS=libsasl2-dev libssl-dev libldap2-dev" \
  -e REQUIREMENTS_FILE=requirements.txt \
  pschmitt/pyinstaller:3.7 \
    --hidden-import=pkg_resources.py2_warn \
    app.py

Configuration

There's a few ENV vars you can set:

  • REQUIREMENTS_FILE: Path to a requirements.txt file which is to installed before running pyinstaller.
  • UPDATE_PIP: Set to any value to make the entrypoint script update pip, setuptools and wheel before installing the dependencies defined in requirements.txt or pyproject.toml
  • SKIP_PIP_INSTALL_PROJECT: Set to any value to disable installing the project via pip install . which may be undesirable if you want a requirements.txt file to take precendence for example.

Static binaries

WARNING: This is currently only "supported" on amd64.

To run staticx on the binary produced by pyinstaller you need can make use the STATICX_* environment variables:

  • STATICX: Enable staticx. Set to any value. Unset by default.
  • STATICX_ARGS: Set staticx's arguments. Eg: --strip. Unset by default.
  • STATICX_TARGET: Set the name of the binary in the dist/ directory which we should run staticx against. Default to the first file in dist/.
  • STATICX_OUTPUT: Name of the resulting binary. Defaults to ${STATICX_TARGET}_static.

About

pyinstaller + staticx in a container

https://hub.docker.com/r/pschmitt/pyinstaller

License:GNU General Public License v3.0


Languages

Language:Shell 76.9%Language:Dockerfile 23.1%