X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/394a2035ac1a478e6ebb3fb52a2db4217968e5f2..d89fc97f4a7ee74edcb1a5856fec560c748b9086:/doc/install/install-docker.html.textile.liquid
diff --git a/doc/install/install-docker.html.textile.liquid b/doc/install/install-docker.html.textile.liquid
index fb7a7f1c94..922c32990b 100644
--- a/doc/install/install-docker.html.textile.liquid
+++ b/doc/install/install-docker.html.textile.liquid
@@ -1,15 +1,21 @@
---
layout: default
navsection: installguide
-title: Installing with Docker
+title: Build and install Docker images
...
-{% include 'alert_docker' %}
+This method is intended for evaluation and development on a local workstation. It is not suitable for production use in a cluster deployment.
-h2. Prerequisites:
+h2. Prerequisites
# A GNU/Linux (virtual) machine
-# A working Docker installation
+# A working Docker installation (see "Installing Docker":https://docs.docker.com/installation/)
+# A working Go installation (see "Install the Go tools":https://golang.org/doc/install)
+# A working Ruby installation, with the Bundler gem installed
+
+h3. Install Ruby and Bundler
+
+{% include 'install_ruby_and_bundler' %}
h2. Download the source tree
@@ -18,24 +24,98 @@ h2. Download the source tree
~$ git clone https://github.com/curoverse/arvados.git
-See also: "Downloading the source code":https://arvados.org/projects/arvados/wiki/Download on the Arvados wiki.
+See also: "Downloading the source code":https://dev.arvados.org/projects/arvados/wiki/Download on the Arvados wiki.
h2. Building the Arvados Docker containers
-First we need a suitable @config.yml@ file.
+First of all, a suitable @config.yml@ file is needed. The easiest way to generate one based on the provided @config.yml.example@ file is to run the @build.sh@ script. If no @config.yml@ file exists, it will will prompt for a few inputs, write the @config.yml@ file, and then proceed to build all the Docker containers. If @config.yml@ exists, invoking @build.sh@ will simply build all Docker containers or update those that need to be updated.
+
+Run @build.sh@ without arguments to generate @config.yml@ and build all Docker containers (this will take a while!):
~$ cd arvados/docker
-~$ cp config.yml.example config.yml
+
+~$ ./build.sh
+Generating config.yml.
+Arvados needs to know the email address of the administrative user,
+so that when that user logs in they are automatically made an admin.
+This should be an email address associated with a Google account.
+
+Enter your Google ID email address here:
+
+...
+
+Step 7 : ADD generated/setup.sh /usr/local/bin/setup.sh
+ ---> d7c0e7fdf7ab
+Removing intermediate container f3d81180795d
+Step 8 : CMD ["/usr/bin/supervisord", "-n"]
+ ---> Running in 84c64cb9f0d5
+ ---> d6cbb5002604
+Removing intermediate container 84c64cb9f0d5
+Successfully built d6cbb5002604
+date >shell-image
-PUBLIC_KEY_PATH -API_HOSTNAME -API_AUTO_ADMIN_USER -+
~$ docker.io images
+REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
+arvados/shell latest d6cbb5002604 10 minutes ago 1.613 GB
+arvados/sso latest 377f1fa0108e 11 minutes ago 1.807 GB
+arvados/keep latest ade0e0d2dd00 12 minutes ago 210.8 MB
+arvados/keepproxy latest b39ef0baba02 12 minutes ago 241.6 MB
+arvados/workbench latest b0e4fb6da385 12 minutes ago 2.218 GB
+arvados/doc latest 4b64daec9454 12 minutes ago 1.524 GB
+arvados/compute latest 7f1f5f7faf54 13 minutes ago 1.862 GB
+arvados/slurm latest f5bfd1008e6b 17 minutes ago 1.573 GB
+arvados/api latest 6b93c5f5fc42 17 minutes ago 2.274 GB
+arvados/passenger latest add2d11fdf24 18 minutes ago 1.738 GB
+arvados/base latest 81eaadd0c6f5 22 minutes ago 1.463 GB
+arvados/debian 7.6 f339ce275c01 6 days ago 116.8 MB
+arvados/debian latest f339ce275c01 6 days ago 116.8 MB
+arvados/debian wheezy f339ce275c01 6 days ago 116.8 MB
+crosbymichael/skydock latest e985023521f6 3 months ago 510.7 MB
+crosbymichael/skydns next 79c99a4608ed 3 months ago 525 MB
+crosbymichael/skydns latest 1923ce648d4c 5 months ago 137.5 MB
+
+~$ ./build.sh --help
+
+usage: ./build.sh [options]
+
+Calling ./build.sh without arguments will build all Arvados docker images
+
+./build.sh options:
+ -h, --help Print this help text
+ clean Clear all build information
+ realclean clean and remove all Arvados Docker images except arvados/debian
+ deepclean realclean and remove arvados/debian, crosbymichael/skydns and
+ crosbymichael/skydns Docker images
+
~$ ./build.sh clean
+~$ ./build.sh realclean
+~$ ./build.sh deepclean
+
~$ ./arvdock -h
-usage: ./arvdock (start|stop|restart|test) [options]
+usage: ./arvdock (start|stop|restart|reset|test) [options]
+
+start run new or restart stopped arvados containers
+stop stop arvados containers
+restart stop and then start arvados containers
+reset stop and delete containers WARNING: this will delete the data inside Arvados!
+test run tests
./arvdock start/stop/restart options:
- -d [port], --doc[=port] Documentation server (default port 9898)
- -w [port], --workbench[=port] Workbench server (default port 9899)
- -s [port], --sso[=port] SSO server (default port 9901)
- -a [port], --api[=port] API server (default port 9900)
- -k, --keep Keep servers
- --ssh Enable SSH access to server containers
- -h, --help Display this help and exit
+ -d[port], --doc[=port] Documentation server (default port 9898)
+ -w[port], --workbench[=port] Workbench server (default port 9899)
+ -s[port], --sso[=port] SSO server (default port 9901)
+ -a[port], --api[=port] API server (default port 9900)
+ -c, --compute Compute nodes (starts 2)
+ -v, --vm Shell server
+ -n, --nameserver Nameserver
+ -k, --keep Keep servers
+ -p, --keepproxy Keepproxy server
+ -h, --help Display this help and exit
If no options are given, the action is applied to all servers.
@@ -64,40 +153,78 @@ usage: ./arvdock (start|stop|restart|test) [options]
-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.
+To debug issues with the Docker containers use @docker exec@, for example:
+
+
+~$ docker exec -t -i api_server /bin/bash
+
~$ ./arvdock start
-sso_server
-Starting container:
- /usr/bin/docker.io run -d -i -t -p 9901:443 --name sso_server arvados/sso
-api_server
-Starting container:
- /usr/bin/docker.io run -d -i -t -p 9900:443 --name api_server --link sso_server:sso arvados/api
-keep_server_0
-Starting container:
- /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
-keep_server_1
-Starting container:
- /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
-doc_server
-Starting container:
- /usr/bin/docker.io run -d -i -t -p 9898:80 --name doc_server arvados/doc
+start_api=false
+start_compute=false
+start_doc=false
+start_keep=false
+start_keepproxy=false
+start_nameserver=false
+start_sso=false
+start_vm=false
+start_workbench=false
+Starting crosbymichael/skydns container...
+skydns
+/usr/bin/docker.io run -d -p 172.17.42.1:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain arvados
+89922ec786cbd2098ed6bae205468a675657cdb2db0e0bfdfe76d1e43cb2fe35
+Starting crosbymichael/skydock container...
+skydock
+/usr/bin/docker.io run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain arvados -name skydns
+de6a35bb20fb9063fb97218ba2554974546eed969d43b1f5aa31a1ac9576e802
+Starting container: api_server
+ /usr/bin/docker.io start api_server
+Started container: api_server
+Starting container: compute0
+ /usr/bin/docker.io start compute0
+Started container: compute0
+Starting container: compute1
+ /usr/bin/docker.io start compute1
+Started container: compute1
+Starting container: keep_server_0
+ /usr/bin/docker.io start keep_server_0
+Started container: keep_server_0
+Starting container: keep_server_1
+ /usr/bin/docker.io start keep_server_1
+Started container: keep_server_1
+Starting container: keepproxy_server
+ /usr/bin/docker.io start keepproxy_server
+Started container: keepproxy_server
+Starting container: doc_server
+ /usr/bin/docker.io start doc_server
+Started container: doc_server
+
+******************************************************************
+You can access the Arvados documentation at http://doc.dev.arvados
+******************************************************************
+
+Starting container: shell
+ /usr/bin/docker.io start shell
+Started container: shell
+Starting container: workbench_server
+ /usr/bin/docker.io start workbench_server
+Started container: workbench_server
+
+********************************************************************
+You can access the Arvados workbench at http://workbench.dev.arvados
+********************************************************************
*****************************************************************
-You can access the Arvados documentation at http://localhost:9898
-*****************************************************************
-
-workbench_server
-Starting container:
- /usr/bin/docker.io run -d -i -t -p 9899:80 --name workbench_server --link api_server:api arvados/workbench
+To access Arvados you must add the Arvados nameserver to the top
+of your DNS configuration in /etc/resolv.conf:
+nameserver 172.17.42.1
+******************************************************************
-*****************************************************************
-You can access the Arvados workbench at http://localhost:9899
-*****************************************************************
https://localhost:9899
+http://workbench.dev.arvados