Compare commits
2
Commits
1457177f6b
...
61f00647f4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
61f00647f4 | ||
|
|
ce68a96440 |
@@ -40,3 +40,10 @@ docker run --rm --entrypoint /bin/bash stilobique/blender:5.1.2 -c 'ldd /opt/ble
|
||||
# Test fonctionnel
|
||||
docker run --rm stilobique/blender:5.1.2 ./blender -b --python-expr "import bpy; print('OK:', bpy.app.version_string)"
|
||||
```
|
||||
|
||||
|
||||
# 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.
|
||||
+21
-7
@@ -106,27 +106,41 @@ class BlenderDocker:
|
||||
print('\tSet Tags version and/or Latest')
|
||||
pass
|
||||
|
||||
def test(self):
|
||||
"""This method request an image (call the method build before) and try to execute the blender inside the container to check if the program can be correctly executed."""
|
||||
def test(self) -> bool:
|
||||
"""
|
||||
This method request an image (call the method build before) and try to execute the blender inside the container
|
||||
to check if the program can be correctly executed.
|
||||
Based on `docker run --rm stilobique/blender:5.1.2 ./blender --version`
|
||||
:return: True if no issue are returned
|
||||
"""
|
||||
logger = self._get_logger('test')
|
||||
try:
|
||||
print('Testing your Blender Docker image')
|
||||
logger.info('Testing your Blender Docker image')
|
||||
print(f'Testing your Blender Docker image {self._docker_image_name}')
|
||||
logger.info(f'Testing your Blender Docker image {self._docker_image_name}.')
|
||||
|
||||
test = self._docker_client.containers.run(
|
||||
name=f"Blender-Docker-Testing-{self._blender_version.tag_name_slugify()}",
|
||||
image=self._docker_image_name,
|
||||
command=['./blender', '--version'],
|
||||
auto_remove = True,
|
||||
auto_remove=True,
|
||||
remove=True,
|
||||
detach=True,
|
||||
stdout=True
|
||||
stdout=True,
|
||||
stderr=True,
|
||||
stream=True,
|
||||
)
|
||||
result = test.wait()
|
||||
exit_code = result.get('StatusCode')
|
||||
|
||||
print(f'\tResult: {test.logs()}')
|
||||
logger.info(f'Exit code return: {exit_code}')
|
||||
logger.info(test.logs(stdout=True, stderr=True).decode('utf-8', errors='replace').strip())
|
||||
|
||||
if exit_code == 0:
|
||||
return True
|
||||
|
||||
print(f'Testing your Blender Docker image {self._docker_image_name} failed.')
|
||||
return False
|
||||
|
||||
except ContainerError as e:
|
||||
print(f'Container error: {e}')
|
||||
exit(1)
|
||||
|
||||
@@ -5,12 +5,6 @@ import json
|
||||
from pathlib import Path
|
||||
from subprocess import run, CalledProcessError
|
||||
|
||||
# def clean_all_dockers():
|
||||
# # bash docker context use default && docker system prune -a -f
|
||||
# # bash docker context use podman && docker system prune -a -f
|
||||
# # bash docker context use desktop-linux && docker system prune -a -f
|
||||
# docker_client = docker.DockerClient(base_url=f'unix:///var/run/docker.sock')
|
||||
|
||||
|
||||
def clean_all_dockers():
|
||||
"""
|
||||
|
||||
@@ -4,6 +4,7 @@ from blender.version import BlenderVersion
|
||||
from blender.docker import BlenderDocker
|
||||
|
||||
# Todo Update readme file badge with blender version
|
||||
# Todo
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -19,7 +20,7 @@ if __name__ == "__main__":
|
||||
|
||||
if test:
|
||||
print('Push this image.')
|
||||
docker.push()
|
||||
# docker.push()
|
||||
|
||||
# Todo: Add a latest tag, check if this version are the latest
|
||||
# Todo: Add a LTS tag, check if this version are a LTS
|
||||
Reference in New Issue
Block a user