This container will run the boinc_client.
I forked this from https://github.com/bcleonard/boinc and have added a bunch of things to make the container more flexible.
I recommend exposing a directory from your host to the container in order to persist the boinc-client data. I used:
mkdir -p /data/boincThis container has been modified from the original to provide the ability to customize the boinc-client config.
To run without any customizations and accept defaults use the below
docker run --name=boinc -h HOSTNAME -p 31416:31416 -v /data/boinc:/var/lib/boinc-client boinc To run with customizations variables can be passed to docker for configuring the boinc-client:
docker run --name=boinc -h HOSTNAME -e PROXYHOST=X.X.X.X -e PROXYPORT=YYYY -e PROXYEXCL=10.0.0.0/8 -e ALLOWREM=1 -e MAXNUMCPU=75.000000 -p 31416:31416 -v /data/boinc:/var/lib/boinc-client boincSee below for a full list of currently available variables.
You can also pass commands to boinc using the docker exec command. For example, to get the state of the boinc client:
docker exec boinc boinccmd --get_stateOr you can just drop into the container:
docker exec -it boinc bashThis is how/where the customizations are added
cc_config.xml options -- the CAPWORD is the variable/value passed to docker via -e VAR=VALUE
<http_server_name>PROXYHOST</http_server_name>
<http_server_port>PROXYPORT</http_server_port>
<no_proxy>PROXYEXCL</no_proxy>
<allow_remote_gui_rpc>ALLOWREM</allow_remote_gui_rpc>
<lower_client_priority>LOWPRIOR</lower_client_priority>global_prefs_override.xml
<suspend_cpu_usage>IFUSECPU</suspend_cpu_usage>
<max_ncpus_pct>MAXNUMCPU</max_ncpus_pct>
<cpu_usage_limit>MAXUSECPU</cpu_usage_limit>Couple other variables:
REMHOST is the host allowed to remotely communicate with boinc client (-e REMHOST=Z.Z.Z.Z)
LOWPRIOR is to change the nice value of the process (default is on [which is 19] -e LOWPRIOR=1)
Information about parameters can be found here:
https://boinc.berkeley.edu/wiki/Global_prefs_override.xml
https://boinc.berkeley.edu/wiki/Client_configuration
I use BOINCTasks to manage my boinc clients instead of an account manager, check it out
If you use an account manager you'll need to modify the template files as well as the startup.sh script to include these (or hard code them in the template files if you like).
- -h HOSTNAME - I recommend that you use this option (choose your own hostname) so that your host id for boinc is not the container id.
- Check out the scripts/control-boinc script for an easy way to manage the containers.