Setting up a development environment#
Quick start#
Make sure you have the necessary prerequisites installed (see below for detailed instructions).
- Docker / Docker Compose
- WSL2 (Windows Subsystem for Linux 2) - only required for Windows
Then run the following command to download the setup script to install QCrBox in the current folder.
$ bash <(curl -fsSL https://raw.githubusercontent.com/QCrBox/QCrBox/dev/scripts/qcrbox_setup.sh)
If you prefer to inspect the script before running it, you can download it first and then run it manually:
$ curl -fsSL https://raw.githubusercontent.com/QCrBox/QCrBox/dev/scripts/qcrbox_setup.sh > qcrbox_setup.sh
$ bash qcrbox_setup.sh
Info
If you are using Windows, make sure to run the above command in a WSL2 terminal, not in PowerShell or the Windows command prompt.
The setup script will give you the option to automatically install Devbox and Nix (if they are not already installed).
Then it will clone the QCrBox repository and create an isolated development environment inside it. This development
environment includes a virtual environment for the pyqcrbox Python package and all other dependencies needed to
run and develop QCrBox. Once installation is complete, you can activate the development shell by running devbox shell within the QCrBox base folder.
QCrBox relies on Devbox to provide a consistent development environment. Internally, Devbox uses the Nix package manager to install packages into isolated environments.
The QCrBox setup script will give you the option to automatically install Devbox and Nix if they are not already installed.
Verify the installation#
Verify that we can now run the qcb command line tool, which is the main CLI interface
for interacting with QCrBx from the command line.
$ qcb
[33mUsage:[0m [1mqcb[0m [[1;36mOPTIONS[0m] [1;36mCOMMAND[0m [[1;36mARGS[0m]...
Command line interface for the Quantum Crystallography Toolbox.
[2mâ•─[0m[2m Options [0m[2m───────────────────────────────────────────────────────────────────[0m[2m─╮[0m
[2m│[0m [1;36m--verbose[0m [1;32m-v[0m Enables verbose mode (will print debugging messages about [2m│[0m
[2m│[0m actions performed). [default: False] [2m│[0m
[2m│[0m [1;36m--help[0m [1;32m-h[0m Show this message and exit. [2m│[0m
[2m╰──────────────────────────────────────────────────────────────────────────────╯[0m
[2mâ•─[0m[2m Commands [0m[2m──────────────────────────────────────────────────────────────────[0m[2m─╮[0m
[2m│[0m [1;36mbuild [0m[1;36m [0m Build QCrBox components. [2m│[0m
[2m│[0m [1;36mup [0m[1;36m [0m Start up QCrBox components. [2m│[0m
[2m│[0m [1;36mdown [0m[1;36m [0m Shut down QCrBox components. [2m│[0m
[2m│[0m [1;36mlist [0m[1;36m [0m List registered resources (applications, commands, etc.). [2m│[0m
[2m│[0m [1;36minit [0m[1;36m [0m Create boilerplate template for a new application. [2m│[0m
[2m│[0m [1;36mvalidate [0m[1;36m [0m Check application spec yaml file for errors. [2m│[0m
[2m│[0m [1;36mversion [0m[1;36m [0m Print the pyqcrbox version. [2m│[0m
[2m╰──────────────────────────────────────────────────────────────────────────────╯[0m
$ qcb version
0.1.dev1+gd64be531b
$ qcb list components
[32m2025-11-05 14:44:42.105[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.compose_file_config[0m:[36mget_development_config[0m:[36m80[0m - [1mUsing development configuration[0m
qcrbox-nats
qcrbox-registry
cod_check
crysalis-pro
crystal-explorer
dummy_cli
dummy_gui
eval1x
mopro
olex2
qcrbox_quality
qcrboxtools
shelx
xharpy-gpaw
qcrbox-syslog
qcrbox-reverse-proxy
$ qcb list components --all
[32m2025-11-05 14:44:43.442[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.compose_file_config[0m:[36mget_development_config[0m:[36m80[0m - [1mUsing development configuration[0m
base-ancestor
base-application
base-novnc
base-wine
qcrbox-nats
qcrbox-registry
cod_check
crysalis-pro
crystal-explorer
dummy_cli
dummy_gui
eval1x
mopro
olex2
qcrbox_quality
qcrboxtools
shelx
xharpy-gpaw
qcrbox-syslog
qcrbox-reverse-proxy
Build a container to test the installation#
Try building a component by typing:
$ qcb build qcrboxtools
[32m2025-11-05 14:44:44.773[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.compose_file_config[0m:[36mget_development_config[0m:[36m80[0m - [1mUsing development configuration[0m
Building the following components (including dependencies): qcrboxtools
[32m2025-11-05 14:44:44.836[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrboxtools with dependencies: ['task_build_service:base-application', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:44:44.836[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:44:44.836[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:44:44.838[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:44:44.838[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:44:44.840[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:44:44.840[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:44:44.840[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:44:44.840[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:44:44.840[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:44:44.865[0m | [1mINFO [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36m<lambda>[0m:[36m81[0m - [1mBuilding Python package: pyqcrbox[0m
Building wheel...
/home/runner/.cache/uv/builds-v0/.tmpLf0Z4a/lib/python3.11/site-packages/setuptools_scm/git.py:202: UserWarning: "/home/runner/work/QCrBox/QCrBox" is shallow and may cause errors
warnings.warn(f'"{wd.path}" is shallow and may cause errors')
Successfully built /home/runner/work/QCrBox/QCrBox/services/base_images/base_ancestor/pyqcrbox_dist/pyqcrbox-0.1.dev1+gd64be531b-py3-none-any.whl
[32m2025-11-05 14:44:45.387[0m | [1mINFO [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36m<lambda>[0m:[36m70[0m - [1mPulling/cloning QCrBoxTools repo in /home/runner/work/QCrBox/QCrBox/.build/QCrBoxTools ...[0m
fatal: cannot change to '/home/runner/work/QCrBox/QCrBox/.build/QCrBoxTools': No such file or directory
Cloning into '/home/runner/work/QCrBox/QCrBox/.build/QCrBoxTools'...
[32m2025-11-05 14:44:46.112[0m | [1mINFO [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36m<lambda>[0m:[36m106[0m - [1mBuilding Python package: qcrboxtools[0m
Building wheel...
Successfully built /home/runner/work/QCrBox/QCrBox/services/base_images/base_ancestor/pyqcrbox_dist/qcrboxtools-0.0.5-py3-none-any.whl
[32m2025-11-05 14:44:46.371[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: base-ancestor[0m
[32m2025-11-05 14:44:46.371[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build base-ancestor'[0m
[32m2025-11-05 14:44:46.371[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:46:31.010[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: base-application[0m
[32m2025-11-05 14:46:31.010[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build base-application'[0m
[32m2025-11-05 14:46:31.011[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:46:34.231[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: qcrbox-nats[0m
[32m2025-11-05 14:46:34.231[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build qcrbox-nats'[0m
[32m2025-11-05 14:46:34.231[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:46:37.045[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: qcrbox-registry[0m
[32m2025-11-05 14:46:37.045[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build qcrbox-registry'[0m
[32m2025-11-05 14:46:37.046[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:46:40.904[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: qcrboxtools[0m
[32m2025-11-05 14:46:40.905[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build qcrboxtools'[0m
[32m2025-11-05 14:46:40.905[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
Restart QCrBox#
In the event of disaster, it is possible to destroy the containers and restart QCrBox by using a Devbox script,
devbox run restart
Build the set of currently created QCrBox containers#
Some of the components rely on software that is not independedly distributable. How to get the necessary files is descibed here (you only need the ones not marked as "support in development")
After these have been have been added, you can build all the components using:
[32m2025-11-05 14:46:45.485[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.compose_file_config[0m:[36mget_development_config[0m:[36m80[0m - [1mUsing development configuration[0m
Building the following components (including dependencies): mopro, xharpy-gpaw, qcrbox_quality, olex2, cod_check, qcrboxtools, crystal-explorer
[32m2025-11-05 14:46:45.551[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding mopro with dependencies: ['task_build_service:base-wine', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.551[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-wine with dependencies: ['task_build_service:base-novnc'][0m
[32m2025-11-05 14:46:45.552[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-novnc with dependencies: ['task_build_service:base-application'][0m
[32m2025-11-05 14:46:45.552[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:46:45.552[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.554[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.554[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding xharpy-gpaw with dependencies: ['task_build_service:base-application', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.556[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m140[0m - [34m[1mFound 1 prebuild script(s) for 'xharpy-gpaw'[0m
[32m2025-11-05 14:46:45.557[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:46:45.557[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.558[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.559[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.560[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.560[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.560[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.560[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.560[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.561[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox_quality with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.561[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.562[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.563[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.564[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.564[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.564[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.564[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.565[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.565[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding olex2 with dependencies: ['task_build_service:base-novnc', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.565[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m140[0m - [34m[1mFound 1 prebuild script(s) for 'olex2'[0m
[32m2025-11-05 14:46:45.565[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-novnc with dependencies: ['task_build_service:base-application'][0m
[32m2025-11-05 14:46:45.565[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:46:45.566[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.567[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.567[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding cod_check with dependencies: ['task_build_service:base-application', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.569[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:46:45.570[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.571[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.571[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.573[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.573[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.573[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.573[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.573[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.574[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrboxtools with dependencies: ['task_build_service:base-application', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.574[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:46:45.574[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.575[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.576[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.577[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.577[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.577[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.578[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.578[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.578[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding crystal-explorer with dependencies: ['task_build_service:base-novnc', 'task_build_service:qcrbox-registry'][0m
[32m2025-11-05 14:46:45.578[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m140[0m - [34m[1mFound 1 prebuild script(s) for 'crystal-explorer'[0m
[32m2025-11-05 14:46:45.578[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-novnc with dependencies: ['task_build_service:base-application'][0m
[32m2025-11-05 14:46:45.578[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-application with dependencies: ['task_build_service:base-ancestor'][0m
[32m2025-11-05 14:46:45.579[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.581[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-registry with dependencies: ['task_build_service:base-ancestor', 'task_build_service:qcrbox-nats', 'task_build_service:qcrbox-reverse-proxy', 'task_build_service:qcrbox-syslog'][0m
[32m2025-11-05 14:46:45.581[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding base-ancestor with dependencies: ['task_build_python_package:pyqcrbox'][0m
[32m2025-11-05 14:46:45.582[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-nats with dependencies: [][0m
[32m2025-11-05 14:46:45.583[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-reverse-proxy with dependencies: [][0m
[32m2025-11-05 14:46:45.583[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-reverse-proxy', nothing to do.[0m
[32m2025-11-05 14:46:45.583[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m133[0m - [34m[1mBuilding qcrbox-syslog with dependencies: [][0m
[32m2025-11-05 14:46:45.583[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36mtask_build_docker_image[0m:[36m146[0m - [34m[1mNo local build context found for service 'qcrbox-syslog', nothing to do.[0m
[32m2025-11-05 14:46:45.602[0m | [1mINFO [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36m<lambda>[0m:[36m81[0m - [1mBuilding Python package: pyqcrbox[0m
Building wheel...
/home/runner/.cache/uv/builds-v0/.tmpgqvwKI/lib/python3.11/site-packages/setuptools_scm/git.py:202: UserWarning: "/home/runner/work/QCrBox/QCrBox" is shallow and may cause errors
warnings.warn(f'"{wd.path}" is shallow and may cause errors')
Successfully built /home/runner/work/QCrBox/QCrBox/services/base_images/base_ancestor/pyqcrbox_dist/pyqcrbox-0.1.dev1+gd64be531b-py3-none-any.whl
[32m2025-11-05 14:46:46.127[0m | [1mINFO [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36m<lambda>[0m:[36m70[0m - [1mPulling/cloning QCrBoxTools repo in /home/runner/work/QCrBox/QCrBox/.build/QCrBoxTools ...[0m
Already up to date.
[32m2025-11-05 14:46:46.464[0m | [1mINFO [0m | [36mpyqcrbox.cli.subcommands.build[0m:[36m<lambda>[0m:[36m106[0m - [1mBuilding Python package: qcrboxtools[0m
Building wheel...
Successfully built /home/runner/work/QCrBox/QCrBox/services/base_images/base_ancestor/pyqcrbox_dist/qcrboxtools-0.0.5-py3-none-any.whl
[32m2025-11-05 14:46:46.721[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: base-ancestor[0m
[32m2025-11-05 14:46:46.721[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build base-ancestor'[0m
[32m2025-11-05 14:46:46.721[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:46:47.393[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: base-application[0m
[32m2025-11-05 14:46:47.393[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build base-application'[0m
[32m2025-11-05 14:46:47.393[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:46:47.819[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: base-novnc[0m
[32m2025-11-05 14:46:47.819[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build base-novnc'[0m
[32m2025-11-05 14:46:47.819[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:47:45.219[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: base-wine[0m
[32m2025-11-05 14:47:45.220[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build base-wine'[0m
[32m2025-11-05 14:47:45.220[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:50:51.081[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: qcrbox-nats[0m
[32m2025-11-05 14:50:51.081[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build qcrbox-nats'[0m
[32m2025-11-05 14:50:51.081[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:50:53.034[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: qcrbox-registry[0m
[32m2025-11-05 14:50:53.034[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build qcrbox-registry'[0m
[32m2025-11-05 14:50:53.034[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
[32m2025-11-05 14:50:53.453[0m | [1mINFO [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mbuild_single_docker_image[0m:[36m41[0m - [1mBuilding docker image: mopro[0m
[32m2025-11-05 14:50:53.453[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m68[0m - [34m[1mRunning docker compose command: '/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build mopro'[0m
[32m2025-11-05 14:50:53.453[0m | [34m[1mDEBUG [0m | [36mpyqcrbox.cli.helpers.docker_project[0m:[36mrun_docker_compose_command[0m:[36m72[0m - [34m[1mCurrent pyqcrbox version: 0.1.dev1+gd64be531b[0m
taskid:task_build_service:mopro - TaskError
PythonAction Error
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/pyqcrbox/cli/helpers/docker_project.py", line 81, in run_docker_compose_command
proc.check_returncode()
File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/subprocess.py", line 502, in check_returncode
raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '['/usr/bin/docker', 'compose', '--project-name=qcrbox', '--env-file=/home/runner/work/QCrBox/QCrBox/.env.dev', '--file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml', '--file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml', '--file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml', 'build', 'mopro']' returned non-zero exit status 1.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/doit/action.py", line 461, in execute
returned_value = self.py_callable(*self.args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/pyqcrbox/cli/helpers/docker_project.py", line 42, in build_single_docker_image
self.run_docker_compose_command("build", target_image, dry_run=dry_run, capture_output=True)
File "/opt/hostedtoolcache/Python/3.11.14/x64/lib/python3.11/site-packages/pyqcrbox/cli/helpers/docker_project.py", line 84, in run_docker_compose_command
raise QCrBoxSubprocessError(error_msg) from exc
pyqcrbox.cli.helpers.qcrbox_helpers.QCrBoxSubprocessError: An error occurred when executing the following command:
/usr/bin/docker compose --project-name=qcrbox --env-file=/home/runner/work/QCrBox/QCrBox/.env.dev --file=/home/runner/work/QCrBox/QCrBox/docker-compose.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.build.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.build.yml --file=/home/runner/work/QCrBox/QCrBox/docker-compose.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/cod_check/docker-compose.cod_check.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crysalis-pro/docker-compose.crysalis-pro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/crystal_explorer/docker-compose.crystal-explorer.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_cli/docker-compose.dummy_cli.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/dummy_gui/docker-compose.dummy_gui.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/eval1x/docker-compose.eval1x.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/mopro/docker-compose.mopro.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/olex2_linux/docker-compose.olex2_linux.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrbox_quality/docker-compose.qcrbox_quality.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/qcrboxtools/docker-compose.qcrboxtools.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/shelx/docker-compose.shelx.run.yml --file=/home/runner/work/QCrBox/QCrBox/services/applications/xharpy_gpaw/docker-compose.xharpy-gpaw.run.yml build mopro
Return code: 1
Captured stdout:
#1 [internal] load local bake definitions
#1 reading from stdin 1.39kB done
#1 DONE 0.0s
#2 [internal] load build definition from Dockerfile
#2 transferring dockerfile: 1.60kB done
#2 WARN: InvalidDefaultArgInFrom: Default value for ARG qcrbox/base-wine:${QCRBOX_DOCKER_TAG} results in empty or invalid base image name (line 2)
#2 WARN: UndefinedVar: Usage of undefined variable '$QCRBOX_GROUP' (line 9)
#2 WARN: UndefinedVar: Usage of undefined variable '$QCRBOX_GROUP' (line 43)
#2 DONE 0.0s
#3 [internal] load metadata for docker.io/qcrbox/base-wine:latest
#3 DONE 0.0s
#4 [internal] load .dockerignore
#4 transferring context: 2B done
#4 DONE 0.0s
#5 [internal] load build context
#5 transferring context: 26.69kB done
#5 DONE 0.0s
#6 [ 2/13] COPY --chown=qcrbox: MoProSuite_win_2024_10.zip /opt/wine_installations/wine_win64/drive_c/MoPro.zip
#6 ERROR: failed to calculate checksum of ref 53d5b372-3a00-4865-8d81-0d2be474f41b::vffnb3ea233tqoocjdcznis9a: "/MoProSuite_win_2024_10.zip": not found
#7 [1/9] FROM docker.io/qcrbox/base-wine:latest
#7 DONE 0.1s
------
> [ 2/13] COPY --chown=qcrbox: MoProSuite_win_2024_10.zip /opt/wine_installations/wine_win64/drive_c/MoPro.zip:
------
Captured stderr:
Dockerfile:9
--------------------
7 |
8 |
9 | >>> COPY --chown=${QCRBOX_USER}:${QCRBOX_GROUP} MoProSuite_win_2024_10.zip /opt/wine_installations/wine_win64/drive_c/MoPro.zip
10 |
11 | RUN cd /opt/wine_installations/wine_win64/drive_c/ && \
--------------------
failed to solve: failed to compute cache key: failed to calculate checksum of ref 53d5b372-3a00-4865-8d81-0d2be474f41b::vffnb3ea233tqoocjdcznis9a: "/MoProSuite_win_2024_10.zip": not found
[32m2025-11-05 14:50:53.946[0m | [31m[1mERROR [0m | [36mpyqcrbox.cli.helpers.doit_helpers[0m:[36mrun_tasks[0m:[36m47[0m - [31m[1mExecution of the command failed. See the logging output above for details.[0m
Install QCrBox front-end#
In order to drive the QCrBox platform, ensure you also have deployed the QCrBox web front-end. Using the devbox shell navigate outside of the QCrBox folder. Then you can clone the necessary files using:
git clone https://github.com/QCrBox/QCrBoxFrontend.git
You can find instructions to deploy it here.
Prerequisites#
The following dependencies need to be installed manually.
Docker and Docker Compose
The easiest way to install Docker is to use the Docker Desktop (scroll down to find the box titled "Install Docker Desktop" and click on the link for your operating system).
If you don't care about a graphical user interface (for example, if you are working on a remote server), you can also manually install Docker Engine and Docker Compose.
Info
QCrBox has been tested with the version of Docker listed below, but other recent versions should also work. Please create an issue on GitHub if you experience any problems.
Note that QCrBox requires Docker Engine version 25.0 or later due to the use of --start-interval
in container health checks.
$ docker version
Client:
Version: 24.0.9
API version: 1.43
Go version: go1.22.5
Git commit: v24.0.9
Built: Thu Jan 1 00:00:00 1970
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 27.1.1
API version: 1.46 (minimum version 1.24)
Go version: go1.21.12
Git commit: cc13f95
Built: Tue Jul 23 19:57:01 2024
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.19
GitCommit: 2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
runc:
Version: 1.7.19
GitCommit: v1.1.13-0-g58aa920
docker-init:
Version: 0.19.0
GitCommit: de40ad0
$ docker compose version
Docker Compose version v2.21.0