项目作者: pschmitt

项目描述 :
pyinstaller + staticx in a container
高级语言: Shell
项目地址: git://github.com/pschmitt/docker-pyinstaller.git
创建时间: 2020-03-19T16:25:58Z
项目社区:https://github.com/pschmitt/docker-pyinstaller

开源协议:GNU General Public License v3.0

下载


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

  1. docker run -it --rm \
  2. -v "$PWD:/app" \
  3. -e "DEPS=libsasl2-dev libssl-dev libldap2-dev" \
  4. -e REQUIREMENTS_FILE=requirements.txt \
  5. pschmitt/pyinstaller:3.7 \
  6. --hidden-import=pkg_resources.py2_warn \
  7. 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.