@@ -141,16 +141,16 @@ Vagrant
141
141
142
142
*arca.backend.VagrantBackend *
143
143
144
- **This backend might be reworked completely, consider its API unstable. **
145
-
146
- If you're extra paranoid you can use Vagrant to completely isolate the tasks.
144
+ If you're extra paranoid you can use Vagrant to completely isolate the runtime in a Virtual Machine (VM).
147
145
This backend is actually a subclass of ``DockerBackend `` and uses docker in the VM to run the tasks.
148
- Currently the backend works by building the image with requirements and dependencies locally and pushing it to registry
149
- (``push_to_registry_name `` is required), spinning up a VM for each repository,
150
- pulling the image in the VM and running the task. Docker and Vagrant must be runnable by the current user.
146
+ Docker and Vagrant must be runnable by the current user.
147
+
148
+ The backend works by building the image with requirements and dependencies locally and pushing it to registry using ``use_to_registry_name ``.
149
+ Then a VM is launched and the image is pulled there from the registry.
150
+ This takes some time when first launching the VM, but if the VM is reused often, the upload/download time is shorted.
151
+ The built images are also not lost when the VM is destroyed.
151
152
152
- The backend inherits all the settings of ``DockerBackend `` except
153
- for ``keep_container_running `` and has these extra settings:
153
+ The backend inherits all the settings of ``DockerBackend `` (**keep_containers_running ** is by default ``True ``) has these extra settings:
154
154
155
155
* **box **: Vagrant box used in the VM. Either has to have docker version >= 1.8 or not have docker at all, in which case
156
156
it will be installed when spinning up the VM.
@@ -160,8 +160,10 @@ for ``keep_container_running`` and has these extra settings:
160
160
* **quiet **: Tells Vagrant and Fabric (which is used to run the task in the VM) to be quiet. Default is ``True ``.
161
161
Vagrant and Docker output is logged in separate files for each run in a folder ``logs `` in the :class: `Arca <arca.Arca> ` ``base_dir ``.
162
162
The filename is logged in the arca logger (see bellow)
163
- * **destroy **: Destroy the VM right after the task is finished if ``True `` (default).
164
- If ``False `` is set, the VM is only halted.
163
+ * **keep_vm_running **: Should the VM be kept up once a task finishes? By default ``False ``.
164
+ If set to ``True ``, :meth: `stop_vm <arca.VagrantBackend.stop_vm> ` can be used to stop the VM.
165
+ * **destroy **: When stopping the VM (either after a task or after :meth: `stop_vm ` is called), should the VM be destroyed (= deleted) or just halted?
166
+ ``False `` by default.
165
167
166
168
(possible settings prefixes: ``ARCA_VAGRANT_BACKEND_ `` and ``ARCA_BACKEND_ ``)
167
169
0 commit comments