### Troubleshooting
-We strongly recommend you have ssh access to your running containers, this allows you very easily take a sneak peek at internals. The simplest way to gain access is:
-
-1. Run a terminal as root
-1. `ssh-keygen -b 2048 -t rsa -N "" -C "root's unprotected key" -f ~root/.ssh/id_rsa`
-1. Paste the contents of `~root/.ssh/id_rsa.pub` into your templates (see placeholder `YOUR_SSH_KEY` in samples)
-1. Bootstrap and run your container
-1. `./launcher ssh my_container`
-
-Or, if you're running as a regular user:
-
-1. Run a terminal
-1. `ssh-keygen -b 2048 -t rsa -N "" -C "my unprotected key" -f ~/.ssh/id_rsa`
-1. Paste the contents of `~/.ssh/id_rsa.pub` into your templates (see placeholder `YOUR_SSH_KEY` in samples)
-1. Bootstrap and run your container
-1. `./launcher ssh my_container`
+You can ssh into your container using `./launcher ssh my_container`, we will automatically set up ssh access during bootstrap.
### Security
prereqs
+get_ssh_pub_key() {
+ if tty -s
+ then
+ if [[ ! -e ~/.ssh/id_rsa.pub ]] ; then
+ echo You have no SSH key associated to this profile
+ echo "(This will allow you ssh access into your container)"
+ read -p "Generate SSH key at ~/.ssh/id_rsa.pub? (y/N) " -n 1 -r
+ if [[ $REPLY =~ ^[Yy]$ ]]
+ then
+ echo
+ echo Generating SSH key
+ (mkdir -p ~/.ssh && cd ~/.ssh && ssh-keygen -f id_rsa -t rsa -N '')
+ else
+ echo
+ echo WARNING: You may not be able to log in to your container.
+ echo
+ fi
+ fi
+ fi
+
+ ssh_pub_key=`cat ~/.ssh/id_rsa.pub`
+}
+
+
install_docker() {
echo "Docker is not installed, make sure you are running on the 3.8 kernel"
case "$command" in
bootstrap)
+
+ get_ssh_pub_key
+
# Is the image available?
# If not, pull it here so the user is aware what's happening.
docker history $image >/dev/null 2>&1 || docker pull $image
echo $run_command
+ 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") \
|| (docker rm `cat $cidbootstrap` && rm $cidbootstrap)
- "6379:6379"
- "2221:22"
-# ssh key for logging in to container
-params:
- ssh_key: ""
-
# amend SOME_SECRET to a password for the discourse user
hooks:
after_postgres:
- "6379:6379"
- "2221:22"
-hooks:
-# after_sshd:
- # - exec: ssh-import-id some-user
-
volumes:
- volume:
host: /var/docker/shared
- "2222:22"
params:
- # ssh key so you can log in, a tip, try using the key for root in ~root/.ssh or generate one
- # using ssh-keygen. This should be a string containing the key contents. For more information
- # see Troubleshooting in README
- ssh_key: YOUR_SSH_KEY
# git revision to run
version: HEAD
- "2222:22"
params:
-
-# your ssh key can go here, or you can use ssh-import-id
- ssh_key: ""
version: HEAD
# developer emails allow you to fast track account creation on the site
- mkdir -p /var/run/sshd
- mkdir -p /root/.ssh
- echo "$ssh_key" >> /root/.ssh/authorized_keys
+ - echo "$$ENV_SSH_PUB_KEY" >> /root/.ssh/authorized_keys
- chmod 640 /root/.ssh/authorized_keys