Enhanced user experience
authorMichael Brown <michael@netdirect.ca>
Mon, 24 Mar 2014 06:40:41 +0000 (02:40 -0400)
committerMichael Brown <michael@netdirect.ca>
Mon, 24 Mar 2014 06:40:41 +0000 (02:40 -0400)
* launcher: add test: docker daemon running?
* launcher: bugfix: double-quotes were getting into SSH_PUB_KEY variable
* samples: add comments to port specs, email, smtp settings, etc
* samples: add run block with examples for root password, ssh key import

launcher
samples/standalone.yml

index a1140d4ec65017e6f73dc84b169c2cf5b48c4668..c536ea85e240c8b1412978326c57f7c77618a385 100755 (executable)
--- a/launcher
+++ b/launcher
@@ -31,7 +31,15 @@ usage () {
 
 prereqs() {
 
-  # 1. running aufs
+  # 1. docker daemon running?
+  test=`docker info >/dev/null`
+
+  if [[ $? -ne 0 ]] ; then
+    echo "Cannot connect to the docker daemon - verify it is running and you have access"
+    exit 1
+  fi
+
+  # 2. running aufs
   test=`docker info 2> /dev/null | grep 'Driver: aufs'`
   if [[ "$test" =~ "aufs" ]] ; then : ; else
     echo "Your Docker installation is not using aufs"
@@ -42,7 +50,7 @@ prereqs() {
     exit 1
   fi
 
-  # 2. running docker 0.9+
+  # 3. running docker 0.9+
   test=`docker --version | grep 0.9`
 
   if [[ "$test" =~ "0.9" ]] ; then : ; else
@@ -50,7 +58,7 @@ prereqs() {
     exit 1
   fi
 
-  # 3. able to attach stderr / out / tty
+  # 4. able to attach stderr / out / tty
   test=`docker run -i --rm -a stdin -a stdout -a stderr $image echo working`
   if [[ "$test" =~ "working" ]] ; then : ; else
     echo "Your Docker installation is not working correctly"
@@ -263,7 +271,7 @@ case "$command" in
 
       echo $run_command
 
-      env=("${env[@]}" "-e" "SSH_PUB_KEY=\"$ssh_pub_key\"")
+      env=("${env[@]}" "-e" "SSH_PUB_KEY=$ssh_pub_key")
 
       (exec echo "$input" | docker run "${env[@]}" -e DOCKER_HOST_IP=$docker_ip --cidfile $cidbootstrap -i -a stdin -a stdout -a stderr $volumes $image \
          /bin/bash -c "$run_command") \
index 2dae4e787698db268b2f52e8f68a54bb830670b6..cee740fb2caf1b65f20a89354df8ac80b2535a4b 100644 (file)
@@ -5,31 +5,32 @@ templates:
   - "templates/redis.template.yml"
   - "templates/sshd.template.yml"
   - "templates/web.template.yml"
+
 # which ports to expose?
 expose:
-  - "80:80"
-  - "2222:22"
+  - "80:80"   # fwd host port 80   to container port 80 (http)
+  - "2222:22" # fwd host port 2222 to container port 22 (ssh)
 
 params:
   # git revision to run
   version: HEAD
 
-
 env:
-  # your email here
-  DISCOURSE_DEVELOPER_EMAILS: 'my_email@email.com'
+  # comma-separated emails
+  DISCOURSE_DEVELOPER_EMAILS: 'my_email@example.com'
   # CHANGE ME to your hostname
   DISCOURSE_HOSTNAME: 'www.example.com'
   # SET ME to your smtp server eg mandrill
   # don't forget to set mail
-  # DISCOURSE_SMTP_ADDRESS: smtp.mandrillapp.com
-  # DISCOURSE_SMTP_PORT: 587
-  # DISCOURSE_SMTP_USER_NAME: user@example.com
-  # DISCOURSE_SMTP_PASSWORD: p@ssword
+  DISCOURSE_SMTP_ADDRESS: smtp.example.com          # (mandatory)
+  # DISCOURSE_SMTP_PORT: 587                        # (optional)
+  # DISCOURSE_SMTP_USER_NAME: user@example.com      # (optional)
+  # DISCOURSE_SMTP_PASSWORD: p@ssword               # (optional)
 
+# These containers are stateless, all the data is stored in /shared
 volumes:
   - volume:
-      host: /var/docker/shared
+      host: /var/docker/shared/standalone
       guest: /shared
 
 # you may use the docker manager to upgrade and monitor your docker image
@@ -41,3 +42,20 @@ hooks:
         cmd:
           - mkdir -p plugins
           - git clone https://github.com/discourse/docker_manager.git
+
+# Remember, this is YAML syntax - you can only have one block with a name
+run:
+  - exec: echo "Beginning of custom commands"
+
+  ## If you want to configure password login for root, uncomment and change:
+  #- exec: apt-get -y install whois # for mkpasswd
+  ## Use only one of the following lines:
+  #- exec: /usr/sbin/usermod -p 'PASSWORD_HASH' root
+  #- exec: /usr/sbin/usermod -p "$(mkpasswd -m sha-256 'RAW_PASSWORD')" root
+
+  ## If you want to authorized additional users, uncomment and change:
+  #- exec: ssh-import-id username
+  #- exec: ssh-import-id anotherusername
+
+  - exec: echo "End of custom commands"
+  - exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Authorized SSH keys for this container:"; } NF>=2 {print $NF;}'