You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RUN apt-get update && apt-get install -yq --no-install-recommends \
26
+
# basic necessities
27
+
sudo \
28
+
ca-certificates \
29
+
curl \
30
+
jq \
31
+
# gnupg requirement
32
+
gnupg \
33
+
dirmngr \
34
+
# useful utilities for debugging within docker itself
35
+
nano \
36
+
less \
37
+
procps \
38
+
lsb-release \
39
+
# gcc compiler
40
+
build-essential \
41
+
locales \
42
+
# for ssh-agent and ssh-add
43
+
keychain \
44
+
# extras \
45
+
wget \
46
+
bzip2 \
47
+
git \
48
+
# Uncomment en_US.UTF-8 for inclusion in generation
49
+
&& sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen \
50
+
# Generate locale
51
+
&& locale-gen \
52
+
&& apt-get clean \
53
+
&& rm -rf /var/lib/apt/lists/*
54
+
55
+
##############################
56
+
# Set up Node for Jupyterlab
57
+
##############################
58
+
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
59
+
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
60
+
61
+
# Install Node >18 (needed for jupyterlab)
62
+
RUN apt-get update && apt-get install -yq --no-install-recommends
63
+
RUN mkdir -p /etc/apt/keyrings
64
+
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
65
+
66
+
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
67
+
RUN dpkg --remove --force-remove-reinstreq libnode-dev
68
+
RUN apt-get update && apt-get install -f -yq nodejs
69
+
70
+
71
+
#####################
72
+
# Create the Jupyter User (what users will see in Terra)
73
+
#####################
74
+
# Create the jupyter user and give sudo permission
75
+
ENV JUPYTER_USER=jupyter
76
+
ENV JUPYTER_UID=1002
77
+
78
+
# Create the jupyter user home and add the user to the users group
This repo contains the terra-jupyter-base image that is compatible with notebook service in [Terra]("https://app.terra.bio/") called Leonardo. For example, use `us.gcr.io/broad-dsp-gcr-public/terra-jupyter-base:{version}` in terra.
4
+
5
+
## Image contents
6
+
7
+
The terra-jupyter-base extends the [Ubuntu base image]() TODO by including the following:
8
+
9
+
- OS prerequisites
10
+
- google-cloud-sdk
11
+
- Python 3.10
12
+
- conda
13
+
- Jupyter & JupyterLab
14
+
- Leonardo customizations/extensions
15
+
- Terra notebook utils
16
+
17
+
To see the complete contents of this image please see the [Dockerfile](./Dockerfile).
18
+
19
+
## Selecting prior versions of this image
20
+
21
+
To select an older version this image, you can search the [CHANGELOG.md](./CHANGELOG.md) for a specific package version you need.
22
+
23
+
Once you find an image version that you want, simply copy and paste the image url from the changelog into the corresponding custom docker field in the Terra notebook runtime widget.
24
+
25
+
## Updating the UV packages
26
+
To update UV packages, first cd into the`terra-base` directory, then either:
27
+
- modify the pyproject.toml file, then run `uv lock`
28
+
- run `uv update` to update all packages in the project
29
+
- run `uv add <package_name>` or remove to add or remove a specific package in the project
30
+
31
+
## Building the image
32
+
To build the image locally, run the following command in the root of the repo:
0 commit comments