summaryrefslogtreecommitdiff
path: root/scripts/docker/README.md
blob: c4d7ac94ee8aae14accac2d18723d23a3d62ca88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Soledad Docker Images
=====================

The files in this directory help create a docker image that is usable for
running soledad server and client in an isolated docker context. This is
especially useful for testing purposes as you can limit/reserve a certain
amount of resources for the soledad process, and thus provide a baseline for
comparison of time and resource consumption between distinct runs.

Check the `Dockerfile` for the steps for creating the docker image.

Check the `Makefile` for the rules for running containers.

Check the `helper/` directory for scripts that help running tests.


Environment variables for docker containers
-------------------------------------------

Different environment variables can be set for docker containers and will
cause the scripts to behave differently:

  SOLEDAD_REMOTE - a git url for a remote repository that is added at run time
                   to the local soledad git repository.

  SOLEDAD_BRANCH - the name of a branch to be checked out from the configured
                   remote repository.

  SOLEDAD_PRELOAD_NUM - The number of documents to be preloaded in the
                        container database (either client or server).

  SOLEDAD_PRELOAD_SIZE - The size of the payload of the documents to be
                         prelaoded in the container database (either client or
                         server).

  SOLEDAD_SERVER_URL - The URL of the soledad server to be used during the
                       test.

Check the Makefile for examples on how to use these and maybe even other
variables not documented here.


Communication between client and server containers
--------------------------------------------------

A CONTAINER_ID_FILE variable can be passed to the Makefile target so that the
container id is recorded in a file for further use. This makes it possible to
extract a container's IP and pass it to another container so they can
communicate.