forked from jupyterhub/jupyterhub-deploy-docker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
executable file
·71 lines (53 loc) · 2 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
include .env
.DEFAULT_GOAL=build
network:
@docker network inspect $(HUB_NAME)-network >/dev/null 2>&1 || docker network create $(HUB_NAME)-network
volumes:
@docker volume inspect $(HUB_NAME)-data >/dev/null 2>&1 || docker volume create --name $(HUB_NAME)-data
@docker volume inspect $(HUB_NAME)-db-data >/dev/null 2>&1 || docker volume create --name $(HUB_NAME)-db-data
secrets/postgres.env:
@mkdir -p secrets/
@echo "Generating postgres password in $@"
@echo "POSTGRES_PASSWORD=$(shell openssl rand -hex 32)" > $@
secrets/oauth.env:
@mkdir -p secrets/
@echo "Generating hash key in $@"
@echo "HASH_SECRET_KEY=$(shell openssl rand -hex 32)" > $@
@echo "OAUTH_CLIENT_SECRET=" >> $@
@echo "OAUTH_CLIENT_ID=" >> $@
@echo "OAUTH_CALLBACK_URL=" >> $@
login:
@docker run --rm $(HUB_NAME) hashauthpw --length $(PASSWORD_LENGTH) $(USERNAME) $(HASH_SECRET_KEY)
secrets/jupyterhub.crt:
@echo "Need an SSL certificate in secrets/jupyterhub.crt"
@exit 1
secrets/jupyterhub.key:
@echo "Need an SSL key in secrets/jupyterhub.key"
@exit 1
userlist:
@echo "Add usernames, one per line, to ./userlist, such as:"
@echo " zoe admin"
@echo " wash"
@exit 1
# Do not require cert/key files if SECRETS_VOLUME defined
#secrets_volume = $(shell echo $(SECRETS_VOLUME))
#ifeq ($(secrets_volume),)
# cert_files=secrets/jupyterhub.crt secrets/jupyterhub.key
#else
# cert_files=
#endif
check-files: userlist secrets/postgres.env
pull:
docker pull $(DOCKER_NOTEBOOK_IMAGE)
notebook_image: pull singleuser/Dockerfile
docker build -t $(HUB_NAME)-user:latest \
--build-arg JUPYTERHUB_VERSION=$(JUPYTERHUB_VERSION) \
--build-arg DOCKER_NOTEBOOK_IMAGE=$(DOCKER_NOTEBOOK_IMAGE) \
singleuser
build: check-files network volumes secrets/oauth.env secrets/postgres.env
docker-compose build
r_image:
docker build -t r-image:latest -f singleuser/Dockerfile-R singleuser
.PHONY: network volumes check-files pull notebook_image build