edits

David Anderson 2024-11-13 12:59:11 -08:00
parent f96a81f131
commit 73d6e3fffb
1 changed files with 29 additions and 23 deletions

@ -8,26 +8,29 @@ This explains the two ways of packaging Docker apps:
* Single-purpose app: there is one BOINC app per science app.
You need to create new BOINC app versions each time your
science app changes.
This means that scientists must have login access to
This means your science app developers must have login access to
the BOINC server, and must learn BOINC's command-line tools.
* Universal app: there is a single BOINC app
(and a set of per-platform app versions)
that handles all science apps.
Dockerfiles and science executables are included
in the input files for jobs.
This allows the creation of web-based job submission
systems that let scientists use (and evolve)
Dockerfiles and science executables are included with each job.
This provides flexibility.
For example, it lets you create web-based job submission
systems in which scientists use (and evolve)
Docker apps without logging into the server
(or indeed knowing anything about BOINC).
We're going to give cookbooks for both packaging methods.
This page has cookbooks for both packaging methods.
In both cases we're going to make a Docker app for Windows;
the Linux and Mac OS cases are similar.
Job for this app will be sent only to BOINC 9.0+ clients that have Docker.
On Windows this means that WSL must be enabled,
and the host must have a 'BOINC WSL distro' installed from the Windows Store.
Docker app jobs are sent only to BOINC 9.0+ clients that have Docker.
On Windows this requires that
* WSL is enabled
* The host has the 'BOINC WSL distro' installed from the Windows Store
(or has another WSL distro with either Docker or Podman installed).
Both variants are going to use the same "science executable" -
an x64/Intel program that runs inside a Docker container.
@ -179,12 +182,12 @@ bin/update_version --noconfirm
Edit your project's `config.xml`
and add the following to the `<daemons>` section:
```
<daemon>
<cmd>script_validator --app worker --init_script "validate_init.py" --compare_script "validate_compare.py"</cmd>
</daemon>
<daemon>
<cmd>script_assimilator -d 3 --app worker --script "sample_assimilate.py wu_name batch_id files"</cmd>
</daemon>
<daemon>
<cmd>script_validator --app worker --init_script "validate_init.py" --compare_script "validate_compare.py"</cmd>
</daemon>
<daemon>
<cmd>script_assimilator -d 3 --app worker --script "sample_assimilate.py wu_name batch_id files"</cmd>
</daemon>
```
## Test
@ -228,12 +231,12 @@ and display its output file.
Edit your project's `config.xml`
and add the following to the `<daemons>` section:
```
<daemon>
<cmd>script_validator --app buda --init_script "validate_init.py" --compare_script "validate_compare.py"</cmd>
</daemon>
<daemon>
<cmd>script_assimilator -d 3 --app buda --script "sample_assimilate.py wu_name batch_id files"</cmd>
</daemon>
<daemon>
<cmd>script_validator --app buda --init_script "validate_init.py" --compare_script "validate_compare.py"</cmd>
</daemon>
<daemon>
<cmd>script_assimilator -d 3 --app buda --script "sample_assimilate.py wu_name batch_id files"</cmd>
</daemon>
```
## Create an app version for Windows
@ -264,8 +267,11 @@ bin/update_verions --noconfirm
## Create a BUDA directory
Create a director `buda_dir` in the project and copy
files to it:
'BUDA' stands for BOINC Universal Docker App.
A "BUDA directory" contains the files
for a particular science app
Create a director `buda_dir` in the project and copy files to it:
```
buda_dir/
Dockerfile_worker_1