-
Notifications
You must be signed in to change notification settings - Fork 12
/
Makefile
78 lines (65 loc) · 2.73 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
71
72
73
74
75
76
77
78
# Copyright (c) Jupyter Development Team.
# Distributed under the terms of the Modified BSD License.
# Revision Date: 20180529
include .env
.DEFAULT_GOAL=build
network:
@docker network inspect $(DOCKER_NETWORK_NAME) >/dev/null 2>&1 || docker network create $(DOCKER_NETWORK_NAME)
volumes:
@docker volume inspect $(DATA_VOLUME_HOST) >/dev/null 2>&1 || docker volume create --name $(DATA_VOLUME_HOST)
@docker volume inspect $(DB_VOLUME_HOST) >/dev/null 2>&1 || docker volume create --name $(DB_VOLUME_HOST)
self-signed-cert:
# make a self-signed cert
create-certs.sh
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.pem secrets/jupyterhub.key
else
cert_files=
endif
check-files: userlist $(cert_files) .env
notebook_base:
DOCKER_BUILDKIT=$(DOCKER_BUILDKIT) docker build -t $(LOCAL_NOTEBOOK_BASE) $(DOCKER_BUILD_CACHE_OPTION) \
--ulimit nofile=1024 \
--progress auto \
--build-arg LOGO_IMAGE=$(LOGO_IMAGE) \
--build-arg JUPYTERHUB_VERSION=$(JUPYTERHUB_VERSION) \
--build-arg JUPYTERLAB_VERSION=$(JUPYTERLAB_VERSION) \
--build-arg NOTEBOOK_VERSION=$(NOTEBOOK_VERSION) \
--build-arg DOCKER_NOTEBOOK_BASE=$(DOCKER_NOTEBOOK_BASE) \
--build-arg JUPYTER_UI=$(JUPYTER_UI) \
--build-arg CONDA_VERSION=$(CONDA_VERSION) \
--build-arg PYTHON_VERSION=$(PYTHON_VERSION) \
--file=singleuser/$(DOCKERFILE_BASE) singleuser
notebook_body:
DOCKER_BUILDKIT=$(DOCKER_BUILDKIT) docker build -t $(LOCAL_NOTEBOOK_BODY) $(DOCKER_BUILD_CACHE_OPTION) \
--ulimit nofile=1024 \
--progress auto \
--build-arg JUPYTERHUB_VERSION=$(JUPYTERHUB_VERSION) \
--build-arg JUPYTERLAB_VERSION=$(JUPYTERLAB_VERSION) \
--build-arg NOTEBOOK_VERSION=$(NOTEBOOK_VERSION) \
--build-arg PLOTLY_VERSION=$(PLOTLY_VERSION) \
--file=singleuser/$(DOCKERFILE_BODY) singleuser
notebook_image: #pull singleuser/Dockerfile
DOCKER_BUILDKIT=$(DOCKER_BUILDKIT) docker build -t $(LOCAL_NOTEBOOK_IMAGE) $(DOCKER_BUILD_CACHE_OPTION) \
--squash \
--ulimit nofile=1024 \
--progress $(BUILDKIT_PROGRESS) \
--build-arg LOGO_IMAGE=$(LOGO_IMAGE) \
--build-arg JUPYTERHUB_VERSION=$(JUPYTERHUB_VERSION) \
--build-arg JUPYTERLAB_VERSION=$(JUPYTERLAB_VERSION) \
--build-arg NOTEBOOK_VERSION=$(NOTEBOOK_VERSION) \
--build-arg PLOTLY_VERSION=$(PLOTLY_VERSION) \
--build-arg NB_USER_PASS=$(NB_USER_PASS) \
--build-arg GEN_CERT=$(GEN_CERT) \
--build-arg MAPBOX_API_KEY=$(MAPBOX_API_KEY) \
--file=singleuser/$(DOCKERFILE_TAIL) singleuser
build: check-files network volumes
docker-compose build
.PHONY: network volumes check-files pull notebook_image build