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"
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
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"
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") \
- "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
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;}'