Project

General

Profile

Arvbox » History » Revision 10

Revision 9 (Peter Amstutz, 03/03/2016 04:25 PM) → Revision 10/14 (Peter Amstutz, 03/03/2016 04:25 PM)

h1. Arvbox 

 We recommend using "Arvbox":http://doc.arvados.org/install/arvbox.html to set up self-contained Arvados development environment. 

 h2. Running Arvados in development mode 

 <pre> 
 $ arvbox reboot dev 
 </pre> 

 This performs the following operations: 

 # Rebuild the arvbox-dev docker image (typically the layers are cached so this is a no-op unless you are working on arvbox itself) 
 # Create @~/.arvbox/arvbox@ to store arvbox state 
 # Clone the arvados git repository to @~/.arvbox/arvbox/arvados@ 
 # Place stateful container data in @~/.arvbox/arvbox/postgres@ and @~/.arvbox/arvbox/var@ 
 # Start the container 

 The container will then: 
 # Download and cache various packages (Ruby gems, Passenger) 
 # Compile and install Arvados server binaries 
 # Build and install Arvados SDK packages (such as arvados-python-client) 
 # Start the Arvados services 

 The directories inside @~/.arvbox/arvbox@ are all bind-mounted inside the container.    This means that you may edit files on the host file system and the changes will be seen inside the container immediately.    For example, if you edit a page template in @~/.arvbox/arvbox/arvados/apps/workbench/app/views@ you only need to reload the page in your browser to see the change. 

 You can restart individual services without restarting the whole container.    For compiled services, the startup script always recompiles the server before starting it.    For example, if you are working on @keepproxy@ 

 <pre> 
 $ arvbox sv restart keepproxy 
 </pre> 

 If any service fails to come up, you can see the debug log using @arvbox log@.    This log will include compilation or install errors: 

 <pre> 
 $ arvbox log keepproxy 
 </pre> 

 Finally, you can get a root shell inside the container using @arvbox sh@ 

 <pre> 
 $ arvbox sh 
 </pre> 

 

 h2. Running multiple Arvbox containers 

 To run multiple Arvbox containers, give them different names by setting the environment variable @ARVBOX_CONTAINER@. 

 <pre> 
 $ arvbox status 
 Selected: arvbox 
 Status: running 
 IP: 172.17.0.2 
 Data: /home/peter/.arvbox/arvbox 

 $ export ARVBOX_CONTAINER=arvbox2 
 

 $ arvbox status 
 Selected: arvbox2 
 Status: not running 
 Data: /home/peter/.arvbox/arvbox2 
 </pre> 

 

 h2. Running the test suite 

 Arvbox can also be used to run the Arvados test suite in an isolated environment. 

 <pre> 
 $ arvbox restart test 
 </pre> 

 You can pass parameters to the test suite as described in [[Running tests#Save-time-by-skipping-install]]: 

 <pre> 
 $ arvbox restart test --only services/keepproxy 
 </pre>