* add argument help to build.sh
[arvados.git] / doc / install / install-docker.html.textile.liquid
1 ---
2 layout: default
3 navsection: installguide
4 title: Installing with Docker
5 ...
6
7 h2. Purpose
8
9 This installation method is appropriate for local testing, evaluation, and
10 development. For production use, this method is not recommended.
11
12 h2. Prerequisites
13
14 # A GNU/Linux (virtual) machine
15 # A working Docker installation (see "Installing Docker":https://docs.docker.com/installation/)
16
17 h2. Download the source tree
18
19 <notextile>
20 <pre><code>~$ <span class="userinput">cd $HOME</span> # (or wherever you want to install)
21 ~$ <span class="userinput">git clone https://github.com/curoverse/arvados.git</span>
22 </code></pre></notextile>
23
24 See also: "Downloading the source code":https://arvados.org/projects/arvados/wiki/Download on the Arvados wiki.
25
26 h2. Building the Arvados Docker containers
27
28 First of all, a suitable @config.yml@ file is needed.
29
30 <notextile>
31 <pre><code>~$ <span class="userinput">cd arvados/docker</span>
32 ~$ <span class="userinput">cp config.yml.example config.yml</span>
33 </code></pre></notextile>
34
35 Edit the @config.yml@ file and fill in values for at a minimum these
36 parameters:
37
38 <pre>
39 PUBLIC_KEY_PATH
40 ARVADOS_USER_NAME
41 API_HOSTNAME
42 API_AUTO_ADMIN_USER
43 </pre>
44
45 Then build the docker containers (this will take a while):
46
47 <notextile>
48 <pre><code>
49 ~$ <span class="userinput">./build.sh</span>
50 ...
51 Step 7 : ADD generated/setup.sh /usr/local/bin/setup.sh
52  ---> d7c0e7fdf7ab
53 Removing intermediate container f3d81180795d
54 Step 8 : CMD ["/usr/bin/supervisord", "-n"]
55  ---> Running in 84c64cb9f0d5
56  ---> d6cbb5002604
57 Removing intermediate container 84c64cb9f0d5
58 Successfully built d6cbb5002604
59 date >shell-image
60 </code></pre></notextile>
61
62 If all goes well, you should now have a number of docker images built:
63
64 <notextile>
65 <pre><code>~$ <span class="userinput">docker.io images</span>
66 REPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
67 arvados/shell           latest              d6cbb5002604        10 minutes ago      1.613 GB
68 arvados/sso             latest              377f1fa0108e        11 minutes ago      1.807 GB
69 arvados/keep            latest              ade0e0d2dd00        12 minutes ago      210.8 MB
70 arvados/workbench       latest              b0e4fb6da385        12 minutes ago      2.218 GB
71 arvados/doc             latest              4b64daec9454        12 minutes ago      1.524 GB
72 arvados/compute         latest              7f1f5f7faf54        13 minutes ago      1.862 GB
73 arvados/slurm           latest              f5bfd1008e6b        17 minutes ago      1.573 GB
74 arvados/api             latest              6b93c5f5fc42        17 minutes ago      2.274 GB
75 arvados/passenger       latest              add2d11fdf24        18 minutes ago      1.738 GB
76 arvados/base            latest              81eaadd0c6f5        22 minutes ago      1.463 GB
77 arvados/debian          7.6                 f339ce275c01        6 days ago          116.8 MB
78 arvados/debian          latest              f339ce275c01        6 days ago          116.8 MB
79 arvados/debian          wheezy              f339ce275c01        6 days ago          116.8 MB
80 crosbymichael/skydock   latest              e985023521f6        3 months ago        510.7 MB
81 crosbymichael/skydns    next                79c99a4608ed        3 months ago        525 MB
82 crosbymichael/skydns    latest              1923ce648d4c        5 months ago        137.5 MB
83 </code></pre></notextile>
84
85 h2. Updating the Arvados Docker containers
86
87 If there has been an update to the Arvados Docker building code, it is safest to rebuild the Arvados Docker images from scratch. All build information can be cleared with the 'clean' option to build.sh:
88
89 <notextile>
90 <pre><code>~$ <span class="userinput">./build.sh clean</span></code></pre>
91 </notextile>
92
93 You can also use 'realclean', which does what 'clean' does and in addition removes all Arvados Docker containers and images from your system, with the exception of the arvados/debian image.
94
95 <notextile>
96 <pre><code>~$ <span class="userinput">./build.sh realclean</span></code></pre>
97 </notextile>
98
99 Finally, the 'deepclean' option does what 'realclean' does, and also removes the arvados/debian, crosbymichael/skydns and crosbymichael/skydock images.
100
101 <notextile>
102 <pre><code>~$ <span class="userinput">./build.sh deepclean</span></code></pre>
103 </notextile>
104
105 h2. Running the Arvados Docker containers
106
107 The @arvdock@ command can be used to start and stop the docker containers. It has a number of options:
108
109 <notextile>
110 <pre><code>
111 ~$ <span class="userinput">./arvdock -h</span>
112
113 usage: ./arvdock (start|stop|restart|test) [options]
114
115 ./arvdock start/stop/restart options:
116   -d[port], --doc[=port]        Documentation server (default port 9898)
117   -w[port], --workbench[=port]  Workbench server (default port 9899)
118   -s[port], --sso[=port]        SSO server (default port 9901)
119   -a[port], --api[=port]        API server (default port 9900)
120   -c, --compute                 Compute nodes (starts 2)
121   -v, --vm                      Shell server
122   -n, --nameserver              Nameserver
123   -k, --keep                    Keep servers
124   --ssh                         Enable SSH access to server containers
125   -h, --help                    Display this help and exit
126
127   If no options are given, the action is applied to all servers.
128
129 ./arvdock test [testname] [testname] ...
130   By default, all tests are run.
131 </code>
132 </pre>
133 </notextile>
134
135 The @--ssh@ option can be useful to debug issues with the Docker containers; it allows you to ssh into the running containers as the @root@ user, provided you have access to the private key that matches the public key specified in @config.yml@'s PUBLIC_KEY_PATH variable.
136
137 Start the docker containers:
138
139 <notextile>
140 <pre><code>
141 ~$ <span class="userinput">./arvdock start</span>
142 sso_server
143 Starting container:
144   /usr/bin/docker.io run -d -i -t -p 9901:443 --name sso_server arvados/sso
145 api_server
146 Starting container:
147   /usr/bin/docker.io run -d -i -t -p 9900:443 --name api_server --link sso_server:sso arvados/api
148 keep_server_0
149 Starting container:
150   /usr/bin/docker.io run -d -i -t -p 25107:25107 --name keep_server_0 -v /tmp/tmp.aCSx8Pq6Wb:/dev/keep-0 --link api_server:api arvados/keep
151 keep_server_1
152 Starting container:
153   /usr/bin/docker.io run -d -i -t -p 25108:25107 --name keep_server_1 -v /tmp/tmp.m4OQ9WB73G:/dev/keep-0 --link api_server:api arvados/keep
154 doc_server
155 Starting container:
156   /usr/bin/docker.io run -d -i -t -p 9898:80 --name doc_server arvados/doc
157
158 *****************************************************************
159 You can access the Arvados documentation at http://localhost:9898
160 *****************************************************************
161
162 workbench_server
163 Starting container:
164   /usr/bin/docker.io run -d -i -t -p 9899:80 --name workbench_server --link api_server:api arvados/workbench
165
166 *****************************************************************
167 You can access the Arvados workbench at http://localhost:9899
168 *****************************************************************
169 </code></pre></notextile>
170
171 h2. Accessing workbench
172
173 Point your browser to the Dockerized workbench:
174
175 <notextile>
176 <pre><code><span class="userinput">https://localhost:9899</span>
177 </code></pre>
178 </notextile>
179
180 Now use the google account you specified as @API_AUTO_ADMIN_USER@ in @config.yml@ to log in. You will be prompted *twice* by your browser that you are accessing a site with an untrusted SSL certificate. This is normal; by default the Arvados Docker installation uses self-signed SSL certificates for the SSO and API servers, respectively.
181
182