[![Blender](https://img.shields.io/badge/blender-5.1.2-%23F5792A.svg?style=flat&logo=blender&logoColor=white)](https://www.blender.org/download/) # Blender Docker This repository is an automated blender docker image file generated, it's usefully with blender addon unit test. # Building ## Start your build You can use Invoke to easily start a build, a clean or more. ```shell invoke --li ``` ## Debug and logs Some log are generated inside a `logs` folder. - `build`: all operation on build docker file. - `clean`: from the dedicated function to clean all dockers images and cache. - `test`: simple class method to try a specific docker image. ## Check if the build work # Use case ## Adding an Addon Mount a new volume with your addon inside a folder (ex `/blender-plugin/plugin-archive.zip`), when you run your docker container add this volume and execute a script to add-it with the blender installed. Python function to install an addon with Blender. The file his named `install.py` ````python import bpy def b3d_install_addon(): bpy.ops.preferences.addon_install(filepath='./plugin-archive.zip') bpy.ops.preferences.addon_enable(module='plugin-name') if __name__ == '__main__': b3d_install_addon() ```` Call this function with blender inside this container ````shell #!/bin/sh /opt/blender/blender --background --python "install.py" ```` # Check Image build ```shell docker run --rm stilobique/blender:5.1.2 ./blender --version ``` ```shell # Taille de l'image docker image inspect stilobique/blender:5.1.2 --format='{{.Size}}' | numfmt --to=iec # Dépendances manquantes docker run --rm --entrypoint /bin/bash stilobique/blender:5.1.2 -c 'ldd /opt/blender/blender | grep "not found" || echo "All deps OK"' # Test fonctionnel docker run --rm stilobique/blender:5.1.2 ./blender -b --python-expr "import bpy; print('OK:', bpy.app.version_string)" ``` # CLI helper tasks Reusable helpers (`tasks.py`) are exposed as [invoke](https://www.pyinvoke.org/) tasks. ```shell # List available tasks invoke clean # Clean Docker (all contexts: default, podman, ...) python -m blender.cli clean # List Blender tags (Gitea) python -m blender.cli get-tags-release # List stilobique/blender tags (Docker Hub) python -m blender.cli get-tags-docker ```