mirror of
https://github.com/jupyter/docker-stacks.git
synced 2025-10-15 05:52:57 +00:00
Add example for deploying notebook container using Docker Compose.
(c) Copyright IBM Corp. 2016
This commit is contained in:
48
examples/docker-compose/bin/letsencrypt.sh
Executable file
48
examples/docker-compose/bin/letsencrypt.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
# Use https://letsencrypt.org to create a certificate for a single domain
|
||||
# and store it in a Docker volume.
|
||||
|
||||
set -e
|
||||
|
||||
# Get domain and email from environment
|
||||
[ -z "$FQDN" ] && \
|
||||
echo "ERROR: Must set FQDN environment varable" && \
|
||||
exit 1
|
||||
|
||||
[ -z "$EMAIL" ] && \
|
||||
echo "ERROR: Must set EMAIL environment varable" && \
|
||||
exit 1
|
||||
|
||||
# letsencrypt certificate server type (default is production).
|
||||
# Set `CERT_SERVER=--staging` for staging.
|
||||
: ${CERT_SERVER=''}
|
||||
|
||||
# Create Docker volume to contain the cert
|
||||
: ${SECRETS_VOLUME:=my-notebook-secrets}
|
||||
docker volume create --name $SECRETS_VOLUME 1>/dev/null
|
||||
# Generate the cert and save it to the Docker volume
|
||||
docker run --rm -it \
|
||||
-p 80:80 \
|
||||
-v $SECRETS_VOLUME:/etc/letsencrypt \
|
||||
quay.io/letsencrypt/letsencrypt:latest \
|
||||
certonly \
|
||||
--non-interactive \
|
||||
--keep-until-expiring \
|
||||
--standalone \
|
||||
--standalone-supported-challenges http-01 \
|
||||
--agree-tos \
|
||||
--domain "$FQDN" \
|
||||
--email "$EMAIL" \
|
||||
$CERT_SERVER
|
||||
|
||||
# Set permissions so nobody can read the cert and key.
|
||||
# Also symlink the certs into the root of the /etc/letsencrypt
|
||||
# directory so that the FQDN doesn't have to be known later.
|
||||
docker run --rm -it \
|
||||
-v $SECRETS_VOLUME:/etc/letsencrypt \
|
||||
debian:jessie \
|
||||
bash -c "ln -s /etc/letsencrypt/live/$FQDN/* /etc/letsencrypt/ && \
|
||||
find /etc/letsencrypt -type d -exec chmod 755 {} +"
|
23
examples/docker-compose/bin/sl-dns.sh
Executable file
23
examples/docker-compose/bin/sl-dns.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
set -e
|
||||
|
||||
# User must have slcli installed
|
||||
which slcli > /dev/null || (echo "SoftLayer cli not found (pip install softlayer)"; exit 1)
|
||||
|
||||
USAGE="Usage: `basename $0` machine_name [domain]"
|
||||
E_BADARGS=85
|
||||
|
||||
# Machine name is first command line arg
|
||||
MACHINE_NAME=$1 && [ -z "$MACHINE_NAME" ] && echo "$USAGE" && exit $E_BADARGS
|
||||
|
||||
# Use SOFTLAYER_DOMAIN env var if domain name not set as second arg
|
||||
DOMAIN="${2:-$SOFTLAYER_DOMAIN}" && [ -z "$DOMAIN" ] && \
|
||||
echo "Must specify domain or set SOFTLAYER_DOMAIN environment varable" && \
|
||||
echo "$USAGE" && exit $E_BADARGS
|
||||
|
||||
IP=$(docker-machine ip "$MACHINE_NAME")
|
||||
|
||||
slcli dns record-add $DOMAIN $MACHINE_NAME A $IP
|
15
examples/docker-compose/bin/softlayer.sh
Executable file
15
examples/docker-compose/bin/softlayer.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
# Set default SoftLayer VM settings
|
||||
: ${SOFTLAYER_CPU:=4}
|
||||
export SOFTLAYER_CPU
|
||||
: ${SOFTLAYER_DISK_SIZE:=100}
|
||||
export SOFTLAYER_DISK_SIZE
|
||||
: ${SOFTLAYER_MEMORY:=4096}
|
||||
export SOFTLAYER_MEMORY
|
||||
: ${SOFTLAYER_REGION:=wdc01}
|
||||
export SOFTLAYER_REGION
|
||||
|
||||
docker-machine create --driver softlayer "$@"
|
11
examples/docker-compose/bin/vbox.sh
Executable file
11
examples/docker-compose/bin/vbox.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
# Set reasonable default VM settings
|
||||
: ${VIRTUALBOX_CPUS:=4}
|
||||
export VIRTUALBOX_CPUS
|
||||
: ${VIRTUALBOX_MEMORY_SIZE:=4096}
|
||||
export VIRTUALBOX_MEMORY_SIZE
|
||||
|
||||
docker-machine create --driver virtualbox "$@"
|
Reference in New Issue
Block a user