Skip to content

Run Pyinstaller on ManyLinux 2.28 (x86_64) AlmaLinux 8.7 based using Pyenv

License

Notifications You must be signed in to change notification settings

oleksis/pyinstaller-manylinux

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

Test Build

pyinstaller-manylinux-2.28

PyInstaller ManyLinux 2.28 Docker Action based on AlmaLinux 8.7 (Stone Smilodon)"

This action run PyInstaller using docker image from pypa/manylinux repository

Inputs

pyinstaller-params

Required List of parameters for pyinstaller

Example usage

uses: oleksis/pyinstaller-manylinux@v2.3.0
with:
  pyinstaller-params: "['-c', '-F', '--icon=assets/image.ico', '--exclude-module=test', '--name=app-binary', 'app_module/__main__.py']"

See more in test.yml

How to use the Dockerfile

  • Build the image pyinstaller-manylinux-2.28
docker build -t pyinstaller-manylinux-2.28 -f ./Dockerfile .
  • Create bundle app using pyinstaller in the docker image
docker run --name pyinstaller-manylinux-2.28 \
            -it -d \
            --workdir /src \
            -v $(pwd):/src \
            pyinstaller-manylinux-2.28 \
            -c -F --name=app tests/app.py
  • View the logs in the docker container
docker logs --tail 1000 -f pyinstaller-manylinux-2.28
  • New container with interactive terminal typing using bash
docker run --name pyinstaller-pyenv \
            -it \
            --entrypoint bash \
            --workdir /src \
            -v $(pwd):/src \
            pyinstaller-manylinux-2.28
  • Start the new container using interactive bash
docker start -i pyinstaller-pyenv

[root@882bd364e3fe src]# pyenv versions
* 3.10.10 (set by /root/.pyenv/version)
  • Run the app in the local machine
./dist/app
Hello out there 👋

How to use Github Container Registry

Github Packages

Notes

  1. This action can execute setup.sh if it exists in the repository, before installing the requirements (requirements.txt)
  2. Use pyenv in ManyLinux to have Python builded with --enable-shared. Some project we need add crypto binary library using PyInstaller --add-binary libcryt.so.2:.
cp /usr/local/lib/libcrypt.so.2 .

Releases

PyInstaller ManyLinux 2.28 Docker Action v2.3.0

PyInstaller ManyLinux 2.28 Docker Action v2.2.1

PyInstaller ManyLinux 2.24 Docker Action v2.1.2

PyInstaller ManyLinux 2014 Docker Action v1.0.0