├── .github
└── FUNDING.yml
├── .gitignore
├── .hadolint.yaml
├── CODE_OF_CONDUCT.md
├── CUDA.md
├── CUDA_VERSION_MATRIX.md
├── LICENSE
├── NOTES.md
├── README.md
├── SECURITY.md
├── VERSION_MATRIX.md
├── assets
├── WBF_agroscope_e_rgb_pos_quer_1024.jpg
├── cuda-screenshot.png
└── screenshot.png
├── base
├── .gitlab-ci.yml
├── 3.6.2.Dockerfile
├── 3.6.3.Dockerfile
├── 4.0.0.Dockerfile
├── 4.0.1.Dockerfile
├── 4.0.2.Dockerfile
├── 4.0.3.Dockerfile
├── 4.0.4.Dockerfile
├── 4.0.5.Dockerfile
├── 4.1.0.Dockerfile
├── 4.1.1.Dockerfile
├── 4.1.2.Dockerfile
├── 4.1.3.Dockerfile
├── 4.2.0.Dockerfile
├── 4.2.1.Dockerfile
├── 4.2.2.Dockerfile
├── 4.2.3.Dockerfile
├── 4.3.0.Dockerfile
├── 4.3.1.Dockerfile
├── 4.3.2.Dockerfile
├── 4.3.3.Dockerfile
├── 4.4.0.Dockerfile
├── 4.4.1.Dockerfile
├── 4.4.2.Dockerfile
├── 4.4.3.Dockerfile
├── assets
│ └── opt
│ │ └── code-server
│ │ ├── code-server.svg
│ │ └── src
│ │ └── browser
│ │ └── media
│ │ ├── css
│ │ └── fonts.css
│ │ └── fonts
│ │ ├── MesloLGS NF Bold Italic.woff
│ │ ├── MesloLGS NF Bold Italic.woff2
│ │ ├── MesloLGS NF Bold.woff
│ │ ├── MesloLGS NF Bold.woff2
│ │ ├── MesloLGS NF Italic.woff
│ │ ├── MesloLGS NF Italic.woff2
│ │ ├── MesloLGS NF Regular.woff
│ │ └── MesloLGS NF Regular.woff2
├── conf
│ ├── cuda
│ │ └── shell
│ │ │ └── etc
│ │ │ └── profile.d
│ │ │ └── 00-reset-path.sh
│ ├── ipython
│ │ └── usr
│ │ │ └── local
│ │ │ └── etc
│ │ │ └── ipython
│ │ │ └── ipython_config.py
│ ├── jupyter
│ │ └── etc
│ │ │ └── jupyter
│ │ │ └── jupyter_server_config.py
│ ├── jupyterlab
│ │ └── usr
│ │ │ └── local
│ │ │ └── share
│ │ │ └── jupyter
│ │ │ └── lab
│ │ │ └── settings
│ │ │ └── overrides.json
│ ├── rstudio
│ │ └── etc
│ │ │ └── rstudio
│ │ │ ├── file-locks
│ │ │ ├── logging.conf
│ │ │ ├── rserver.conf
│ │ │ └── rsession.conf
│ ├── shell
│ │ └── etc
│ │ │ ├── profile.d
│ │ │ └── 00-reset-path.sh
│ │ │ ├── skel
│ │ │ └── .profile
│ │ │ └── zsh
│ │ │ └── zprofile
│ └── user
│ │ └── var
│ │ └── backups
│ │ └── skel
│ │ ├── .config
│ │ └── rstudio
│ │ │ └── rstudio-prefs.json
│ │ ├── .local
│ │ └── share
│ │ │ └── code-server
│ │ │ └── User
│ │ │ └── settings.json
│ │ └── .p10k.zsh
├── latest.Dockerfile
└── scripts
│ └── usr
│ └── local
│ └── bin
│ ├── before-notebook.d
│ ├── 10-env.sh
│ ├── 11-home.sh
│ ├── 12-r.sh
│ ├── 13-update-cran.sh
│ ├── 30-code-server.sh
│ ├── 50-rstudio.sh
│ ├── 71-tensorboard.sh
│ ├── 90-limits.sh
│ └── 95-misc.sh
│ ├── busy
│ ├── python-kernel.sh
│ ├── run-hooks.sh
│ ├── start-notebook.d
│ └── 10-populate.sh
│ ├── start-notebook.sh
│ ├── start-singleuser.sh
│ └── start.sh
├── common
└── subtags
│ ├── devtools
│ ├── 4.2.2.Dockerfile
│ ├── 4.2.3.Dockerfile
│ ├── 4.3.0.Dockerfile
│ ├── 4.3.1.Dockerfile
│ ├── 4.3.2.Dockerfile
│ ├── 4.3.3.Dockerfile
│ ├── 4.4.0.Dockerfile
│ ├── 4.4.1.Dockerfile
│ ├── 4.4.2.Dockerfile
│ ├── 4.4.3.Dockerfile
│ └── latest.Dockerfile
│ ├── docker
│ └── Dockerfile
│ └── root
│ └── Dockerfile
├── geospatial
├── .gitlab-ci.yml
├── 3.6.2.Dockerfile
├── 3.6.3.Dockerfile
├── 4.0.0.Dockerfile
├── 4.0.1.Dockerfile
├── 4.0.2.Dockerfile
├── 4.0.3.Dockerfile
├── 4.0.4.Dockerfile
├── 4.0.5.Dockerfile
├── 4.1.0.Dockerfile
├── 4.1.1.Dockerfile
├── 4.1.2.Dockerfile
├── 4.1.3.Dockerfile
├── 4.2.0.Dockerfile
├── 4.2.1.Dockerfile
├── 4.2.2.Dockerfile
├── 4.2.3.Dockerfile
├── 4.3.0.Dockerfile
├── 4.3.1.Dockerfile
├── 4.3.2.Dockerfile
├── 4.3.3.Dockerfile
├── 4.4.0.Dockerfile
├── 4.4.1.Dockerfile
├── 4.4.2.Dockerfile
├── 4.4.3.Dockerfile
└── latest.Dockerfile
├── qgisprocess
├── .gitlab-ci.yml
├── 4.3.0.Dockerfile
├── 4.3.1.Dockerfile
├── 4.3.2.Dockerfile
├── 4.3.3.Dockerfile
├── 4.4.0.Dockerfile
├── 4.4.1.Dockerfile
├── 4.4.2.Dockerfile
├── 4.4.3.Dockerfile
├── conf
│ └── user
│ │ └── var
│ │ └── backups
│ │ └── skel
│ │ └── .local
│ │ └── share
│ │ └── QGIS
│ │ └── QGIS3
│ │ └── profiles
│ │ └── default
│ │ └── QGIS
│ │ └── QGIS3.ini
├── latest.Dockerfile
└── scripts
│ └── usr
│ └── local
│ └── bin
│ └── before-notebook.d
│ └── 70-qgis.sh
├── tidyverse
├── .gitlab-ci.yml
├── 3.6.2.Dockerfile
├── 3.6.3.Dockerfile
├── 4.0.0.Dockerfile
├── 4.0.1.Dockerfile
├── 4.0.2.Dockerfile
├── 4.0.3.Dockerfile
├── 4.0.4.Dockerfile
├── 4.0.5.Dockerfile
├── 4.1.0.Dockerfile
├── 4.1.1.Dockerfile
├── 4.1.2.Dockerfile
├── 4.1.3.Dockerfile
├── 4.2.0.Dockerfile
├── 4.2.1.Dockerfile
├── 4.2.2.Dockerfile
├── 4.2.3.Dockerfile
├── 4.3.0.Dockerfile
├── 4.3.1.Dockerfile
├── 4.3.2.Dockerfile
├── 4.3.3.Dockerfile
├── 4.4.0.Dockerfile
├── 4.4.1.Dockerfile
├── 4.4.2.Dockerfile
├── 4.4.3.Dockerfile
└── latest.Dockerfile
└── verse
├── .gitlab-ci.yml
├── 3.6.2.Dockerfile
├── 3.6.3.Dockerfile
├── 4.0.0.Dockerfile
├── 4.0.1.Dockerfile
├── 4.0.2.Dockerfile
├── 4.0.3.Dockerfile
├── 4.0.4.Dockerfile
├── 4.0.5.Dockerfile
├── 4.1.0.Dockerfile
├── 4.1.1.Dockerfile
├── 4.1.2.Dockerfile
├── 4.1.3.Dockerfile
├── 4.2.0.Dockerfile
├── 4.2.1.Dockerfile
├── 4.2.2.Dockerfile
├── 4.2.3.Dockerfile
├── 4.3.0.Dockerfile
├── 4.3.1.Dockerfile
├── 4.3.2.Dockerfile
├── 4.3.3.Dockerfile
├── 4.4.0.Dockerfile
├── 4.4.1.Dockerfile
├── 4.4.2.Dockerfile
├── 4.4.3.Dockerfile
└── latest.Dockerfile
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: benz0li
2 | liberapay: benz0li
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode/*
2 | !.vscode/settings.json
3 | !.vscode/tasks.json
4 | !.vscode/launch.json
5 | !.vscode/extensions.json
6 | *.code-workspace
7 | .DS_Store
--------------------------------------------------------------------------------
/.hadolint.yaml:
--------------------------------------------------------------------------------
1 | ignored:
2 | - DL3003
3 | - DL3006
4 | - DL3008
5 | - DL3013
6 |
--------------------------------------------------------------------------------
/CUDA_VERSION_MATRIX.md:
--------------------------------------------------------------------------------
1 | # CUDA Version Matrix
2 |
3 | Image tags = R versions
4 |
5 | Topmost entry = Tag `latest`
6 |
7 | | R | Python | SAGA[^1] | CUDA | cuBLAS | cuDNN | NCCL | TensorRT[^2] | Linux distro |
8 | |:------|:--------|:---------|:-------|:----------|:----------|:-------|:-------------------------|:-------------|
9 | | 4.5.0 | 3.12.11 | 7.3.0 | 12.9.0 | 12.9.0.13 | 8.9.7.29 | 2.26.5 | 10.11.0.33/
10.3.0.26 | Ubuntu 22.04 |
10 | | 4.4.3 | 3.12.10 | 7.3.0 | 12.8.1 | 12.8.4.1 | 8.9.7.29 | 2.25.1 | 10.9.0.34/
10.3.0.26 | Ubuntu 22.04 |
11 | | 4.4.2 | 3.12.9 | 7.3.0 | 12.8.0 | 12.8.3.14 | 8.9.7.29 | 2.25.1 | 10.8.0.43/
10.3.0.26 | Ubuntu 22.04 |
12 | | 4.4.1 | 3.12.7 | 7.3.0 | 12.6.2 | 12.6.3.3 | 8.9.7.29 | 2.23.4 | 10.6.0.26/
10.3.0.26 | Ubuntu 22.04 |
13 | | 4.4.0 | 3.12.4 | 7.3.0 | 12.5.0 | 12.5.2.13 | 8.9.7.29 | 2.21.5 | 10.0.1.6 | Ubuntu 22.04 |
14 | | 4.3.3 | 3.11.9 | 7.3.0 | 11.8.0 | 11.11.3.6 | 8.9.6.50 | 2.15.5 | 8.5.3[^3] | Ubuntu 22.04 |
15 | | 4.3.2 | 3.11.8 | 7.3.0 | 11.8.0 | 11.11.3.6 | 8.9.6.50 | 2.15.5 | 8.5.3[^3] | Ubuntu 22.04 |
16 | | 4.3.1 | 3.11.6 | 7.3.0 | 11.8.0 | 11.11.3.6 | 8.9.0.131 | 2.15.5 | 8.5.3[^3] | Ubuntu 22.04 |
17 | | 4.3.0 | 3.11.4 | 7.3.0 | 11.8.0 | 11.11.3.6 | 8.9.0.131 | 2.15.5 | 8.5.3[^3] | Ubuntu 22.04 |
18 | | 4.2.3 | 3.10.11 | n/a | 11.8.0 | 11.11.3.6 | 8.7.0.84 | 2.15.5 | 8.5.3[^3] | Ubuntu 22.04 |
19 | | 4.2.2 | 3.10.10 | n/a | 11.8.0 | 11.11.3.6 | 8.7.0.84 | 2.16.2 | 8.5.3 | Ubuntu 20.04 |
20 |
21 | [^1]: qgisprocess image
22 | [^2]: amd64/arm64
23 | [^3]: `amd64` only
24 |
25 | ## PyTorch/TensorFlow compatibility
26 |
27 | | Python | CUDA | PyTorch[^4] | TensorFlow[^5] |
28 | |:-------|:-----|:---------------|:----------------------|
29 | | 3.12 | 12.9 | version ≥ 2.4 | 2.18 > version ≥ 2.16 |
30 | | 3.12 | 12.8 | version ≥ 2.4 | 2.18 > version ≥ 2.16 |
31 | | 3.12 | 12.6 | version ≥ 2.4 | 2.18 > version ≥ 2.16 |
32 | | 3.12 | 12.5 | version ≥ 2.4 | 2.18 > version ≥ 2.16 |
33 | | 3.11 | 11.8 | version ≥ 2.0 | 2.16 > version ≥ 2.12 |
34 | | 3.10 | 11.8 | version ≥ 1.12 | 2.16 > version ≥ 2.9 |
35 |
36 | [^4]: Installs its own CUDA dependencies
37 | [^5]: The expected TensorRT version is symlinked to the installed TensorRT
38 | version.
39 | ❗️ This relies on backwards compatibility of TensorRT, which may not always be
40 | given.
41 |
42 | ## Recommended NVIDIA driver (Regular)
43 |
44 | | CUDA | Linux driver version | Windows driver version[^6] |
45 | |:-------|:---------------------|:---------------------------|
46 | | 12.9.0 | ≥ 575.51.03 | ≥ 576.02 |
47 | | 12.8.1 | ≥ 570.124.06 | ≥ 572.61 |
48 | | 12.8.0 | ≥ 570.117 | ≥ 572.30 |
49 | | 12.6.2 | ≥ 560.35.03 | ≥ 560.94 |
50 | | 12.5.0 | ≥ 555.42.02 | ≥ 555.85 |
51 | | 11.8.0 | ≥ 520.61.05 | ≥ 520.06 |
52 |
53 | [^6]: [GPU support in Docker Desktop | Docker Docs](https://docs.docker.com/desktop/gpu/)
54 | [Nvidia GPU Support for Windows · Issue #19005 · containers/podman](https://github.com/containers/podman/issues/19005)
55 |
56 | ## Supported NVIDIA drivers (LTSB)
57 |
58 | Only works with
59 | [NVIDIA Data Center GPUs](https://resources.nvidia.com/l/en-us-gpu) or
60 | [select NGC-Ready NVIDIA RTX boards](https://docs.nvidia.com/certification-programs/ngc-ready-systems/index.html).
61 |
62 | | CUDA | Driver version 535[^7] | Driver version 470[^8] |
63 | |:-------|:----------------------:|:----------------------:|
64 | | 12.9.0 | 🟢 | 🔵 |
65 | | 12.8.1 | 🟢 | 🔵 |
66 | | 12.8.0 | 🟢 | 🔵 |
67 | | 12.6.2 | 🟢 | 🔵 |
68 | | 12.5.0 | 🟢 | 🔵 |
69 | | 11.8.0 | 🟡 | 🟢 |
70 |
71 | 🔵: Supported with the CUDA forward compat package only
72 | 🟢: Supported due to minor-version compatibility[^9]
73 | 🟡: Supported due to backward compatibility
74 |
75 | [^7]: EOL: June 2026
76 | [^8]: EOL: July 2024
77 | [^9]: or the CUDA forward compat package
78 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2020 b-data GmbH
2 |
3 | With the exceptions noted below, the code in this directory is distributed under
4 | the terms of the MIT License:
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
24 | This directory also contains code with other copyrights. The affected files,
25 | their copyrights and license statements are listed below.
26 |
27 | --------------------------------------------------------------------------------
28 | base/conf/jupyter/etc/jupyter/jupyter_server_config.py
29 | base/scripts/usr/local/bin/before-notebook.d/71-tensorboard.sh
30 | base/scripts/usr/local/bin/run-hooks.sh
31 | base/scripts/usr/local/bin/start-notebook.sh
32 | base/scripts/usr/local/bin/start-singleuser.sh
33 | base/scripts/usr/local/bin/start.sh
34 | Copyright (c) Jupyter Development Team.
35 |
36 | Distributed under the terms of the Modified BSD License.
37 |
38 | Redistribution and use in source and binary forms, with or without
39 | modification, are permitted provided that the following conditions are met:
40 |
41 | 1. Redistributions of source code must retain the above copyright notice, this
42 | list of conditions and the following disclaimer.
43 |
44 | 2. Redistributions in binary form must reproduce the above copyright notice,
45 | this list of conditions and the following disclaimer in the documentation
46 | and/or other materials provided with the distribution.
47 |
48 | 3. Neither the name of the copyright holder nor the names of its
49 | contributors may be used to endorse or promote products derived from
50 | this software without specific prior written permission.
51 |
52 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
53 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
54 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
55 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
56 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
57 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
58 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
59 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
60 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
61 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
62 |
63 | --------------------------------------------------------------------------------
64 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | ## Supported Versions
2 |
3 | Only the docker image with the latest version of R is supported with security
4 | updates.
5 |
6 | ## Reporting a Vulnerability
7 |
8 | To report a vulnerability in the latest docker image, email the maintainer
9 | olivier.benz@b-data.ch.
10 |
11 | ## Vulnerabilities in Prior Versions
12 |
13 | Vulnerabilities in docker images with prior versions of R are not fixed.
14 |
15 | Whenever a new version of R is released, the previous version's docker image is
16 | rebuilt once again and then frozen.
17 |
18 | Docker images *may* be rebuilt or extended if they fail to start or have runtime
19 | issues.
20 |
--------------------------------------------------------------------------------
/VERSION_MATRIX.md:
--------------------------------------------------------------------------------
1 | # Version Matrix
2 |
3 | Image tags = R versions
4 |
5 | Topmost entry = Tag `latest`
6 |
7 | ## All images
8 |
9 | | R | Python | Jupyter Hub | Jupyter Lab | code‑server (Code) | RStudio | Neovim | Git | Git LFS | Pandoc | CRAN date | Linux distro |
10 | |:------|:--------|:------------|:------------|:-------------------|:--------------|:-------|:-------|:--------|:-------|:-----------|:-------------|
11 | | 4.5.0 | 3.12.11 | 5.3.0 | 4.4.3 | 4.100.3 (1.100.3) | 2025.05.1+513 | 0.11.2 | 2.49.0 | 3.6.1 | 3.6.3 | | Debian 12 |
12 | | 4.4.3 | 3.12.10 | 5.2.1 | 4.3.6 | 4.99.2 (1.99.2) | 2024.12.1+563 | 0.11.0 | 2.49.0 | 3.6.1 | 3.4 | 2025‑04‑11 | Debian 12 |
13 | | 4.4.2 | 3.12.9 | 5.2.1 | 4.3.5 | 4.97.2 (1.97.2) | 2024.12.1+563 | 0.10.4 | 2.48.1 | 3.6.1 | 3.4 | 2025‑02‑28 | Debian 12 |
14 | | 4.4.1 | 3.12.7 | 5.2.1 | 4.2.5 | 4.93.1 (1.93.1) | 2024.09.0+375 | 0.10.2 | 2.47.0 | 3.5.1 | 3.2 | 2024‑10‑31 | Debian 12 |
15 | | 4.4.0 | 3.12.4 | 5.0.0 | 4.2.2 | 4.90.0 (1.90.0) | 2024.04.2+764 | n/a | 2.45.2 | 3.5.1 | 3.1.11 | 2024‑06‑14 | Debian 12 |
16 | | 4.3.3 | 3.11.9 | 4.1.5 | 4.1.6 | 4.23.0 (1.88.0) | n/a | n/a | 2.44.0 | 3.5.1 | 3.1.11 | 2024‑04‑24 | Debian 12 |
17 | | 4.3.2 | 3.11.8 | 4.0.2 | 4.1.2 | 4.21.2 (1.86.2) | n/a | n/a | 2.44.0 | 3.4.1 | 3.1.11 | 2024‑02‑29 | Debian 12 |
18 | | 4.3.1 | 3.11.6 | 4.0.2 | 3.6.6 | 4.18.0 (1.83.1) | n/a | n/a | 2.42.0 | 3.4.0 | 3.1.1 | 2023‑10‑31 | Debian 12 |
19 | | 4.3.0 | 3.11.4 | 4.0.1 | 3.6.4 | 4.13.0 (1.78.2) | n/a | n/a | 2.41.0 | 3.3.0 | 3.1.1 | n/a | Debian 12 |
20 | | 4.2.3 | 3.10.11 | 4.0.0 | 3.6.3 | 4.9.1 (1.73.1) | n/a | n/a | 2.40.0 | 3.3.0 | 2.19.2 | n/a | Debian 11 |
21 | | 4.2.2 | 3.10.10 | 3.1.1 | 3.6.1 | 4.9.1 (1.73.1) | n/a | n/a | 2.40.0 | 3.3.0 | 2.19.2 | n/a | Debian 11 |
22 | | 4.2.1 | 3.9.2 | 2.3.1 | 3.5.0 | 4.8.1 (1.72.1) | n/a | n/a | 2.38.1 | 3.2.0 | 2.19.2 | n/a | Debian 11 |
23 | | 4.2.0 | 3.9.2 | 2.3.1 | 3.4.3 | 4.4.0 (1.66.2) | n/a | n/a | 2.36.1 | 3.2.0 | 2.18 | n/a | Debian 11 |
24 |
25 | ## verse+ images
26 |
27 | | R | CTAN date | Quarto |
28 | |:------|:-----------|:------------|
29 | | 4.5.0 | | 1.7.31 |
30 | | 4.4.3 | 2025‑04‑11 | 1.6.43 |
31 | | 4.4.2 | 2025‑02‑28 | 1.6.42 |
32 | | 4.4.1 | 2024‑10‑31 | 1.5.57 |
33 | | 4.4.0 | 2024‑06‑14 | 1.4.555 |
34 | | 4.3.3 | 2024‑04‑24 | 1.4.553 |
35 | | 4.3.2 | 2024‑02‑29 | 1.4.550 |
36 | | 4.3.1 | 2023‑10‑31 | 1.3.450 |
37 | | 4.3.0 | 2023‑06‑16 | 1.3.361 |
38 | | 4.2.3 | 2023‑04‑21 | 1.2.475[^1] |
39 | | 4.2.2 | 2023‑03‑15 | 1.2.335[^1] |
40 | | 4.2.1 | 2022‑10‑31 | 1.1.251[^1] |
41 | | 4.2.0 | 2022‑06‑23 | n/a |
42 |
43 | ## qgisprocess images
44 |
45 | | R | QGIS | SAGA | OTB[^1] |
46 | |:------|:-------|:------|:--------|
47 | | 4.5.0 | 3.42.3 | 9.1.3 | 9.1.1 |
48 | | 4.4.3 | 3.42.1 | 9.1.3 | 9.1.1 |
49 | | 4.4.2 | 3.42.0 | 9.1.3 | 9.1.0 |
50 | | 4.4.1 | 3.40.0 | 9.1.3 | 9.1.0 |
51 | | 4.4.0 | 3.36.3 | 9.1.3 | 9.0.0 |
52 | | 4.3.3 | 3.36.2 | 9.1.3 | 9.0.0 |
53 | | 4.3.2 | 3.36.0 | 9.1.3 | 8.1.2 |
54 | | 4.3.1 | 3.34.0 | 9.1.3 | 8.1.2 |
55 | | 4.3.0 | 3.30.3 | 8.5.0 | 8.1.1 |
56 | | 4.2.3 | n/a | n/a | n/a |
57 | | 4.2.2 | n/a | n/a | n/a |
58 | | 4.2.1 | n/a | n/a | n/a |
59 | | 4.2.0 | n/a | n/a | n/a |
60 |
61 | [^1]: `amd64` only; QGIS v3.36.0 w/o OTB provider
62 |
--------------------------------------------------------------------------------
/assets/WBF_agroscope_e_rgb_pos_quer_1024.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/assets/WBF_agroscope_e_rgb_pos_quer_1024.jpg
--------------------------------------------------------------------------------
/assets/cuda-screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/assets/cuda-screenshot.png
--------------------------------------------------------------------------------
/assets/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/assets/screenshot.png
--------------------------------------------------------------------------------
/base/assets/opt/code-server/code-server.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/css/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'MesloLGS NF';
3 | src: url('../fonts/MesloLGS NF Regular.woff2') format('woff2'),
4 | url('../fonts/MesloLGS NF Regular.woff') format('woff'),
5 | url('../fonts/MesloLGS NF Regular.ttf') format('truetype');
6 | font-weight: normal;
7 | font-style: normal;
8 | }
9 | @font-face {
10 | font-family: 'MesloLGS NF';
11 | src: url('../fonts/MesloLGS NF Italic.woff2') format('woff2'),
12 | url('../fonts/MesloLGS NF Italic.woff') format('woff'),
13 | url('../fonts/MesloLGS NF Italic.ttf') format('truetype');
14 | font-weight: normal;
15 | font-style: italic;
16 | }
17 | @font-face {
18 | font-family: 'MesloLGS NF';
19 | src: url('../fonts/MesloLGS NF Bold.woff2') format('woff2'),
20 | url('../fonts/MesloLGS NF Bold.woff') format('woff'),
21 | url('../fonts/MesloLGS NF Bold.ttf') format('truetype');
22 | font-weight: bold;
23 | font-style: normal;
24 | }
25 | @font-face {
26 | font-family: 'MesloLGS NF';
27 | src: url('../fonts/MesloLGS NF Bold Italic.woff2') format('woff2'),
28 | url('../fonts/MesloLGS NF Bold Italic.woff') format('woff'),
29 | url('../fonts/MesloLGS NF Bold Italic.ttf') format('truetype');
30 | font-weight: bold;
31 | font-style: italic;
32 | }
33 |
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold Italic.woff
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold Italic.woff2
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold.woff
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Bold.woff2
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Italic.woff
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Italic.woff2
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Regular.woff
--------------------------------------------------------------------------------
/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/b-data/jupyterlab-r-docker-stack/ca96aa41ddcd37207a3e6dccc29445a82e4a1df8/base/assets/opt/code-server/src/browser/media/fonts/MesloLGS NF Regular.woff2
--------------------------------------------------------------------------------
/base/conf/cuda/shell/etc/profile.d/00-reset-path.sh:
--------------------------------------------------------------------------------
1 | # Reset default PATH settings
2 | PATH="/opt/code-server/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
3 | export PATH
4 |
--------------------------------------------------------------------------------
/base/conf/ipython/usr/local/etc/ipython/ipython_config.py:
--------------------------------------------------------------------------------
1 | c.InlineBackend.figure_formats = {"svg", "pdf"}
2 |
3 | import os
4 |
5 | if (
6 | os.path.exists(os.path.join(os.environ["HOME"], "bin"))
7 | and not os.path.join(os.environ["HOME"], "bin") in os.getenv("PATH", "")
8 | ):
9 | os.environ["PATH"] = (
10 | os.path.join(os.environ["HOME"], "bin")
11 | + os.pathsep
12 | + os.getenv("PATH", "")
13 | )
14 |
15 | if (
16 | os.path.exists(os.path.join(os.environ["HOME"], ".local", "bin"))
17 | and not os.path.join(os.environ["HOME"], ".local", "bin")
18 | in os.getenv("PATH", "")
19 | ):
20 | os.environ["PATH"] = (
21 | os.path.join(os.environ["HOME"], ".local", "bin")
22 | + os.pathsep
23 | + os.getenv("PATH", "")
24 | )
25 |
--------------------------------------------------------------------------------
/base/conf/jupyter/etc/jupyter/jupyter_server_config.py:
--------------------------------------------------------------------------------
1 | # Copyright (c) Jupyter Development Team.
2 | # Distributed under the terms of the Modified BSD License.
3 | # mypy: ignore-errors
4 | import os
5 | import shutil
6 | import stat
7 | import subprocess
8 | from pathlib import Path
9 |
10 | from jupyter_core.paths import jupyter_data_dir
11 |
12 | c = get_config() # noqa: F821 # type: ignore
13 | # Listen on all interfaces (IPv4 and IPv6)
14 | c.ServerApp.ip = ""
15 | #c.ServerApp.open_browser = False
16 |
17 | # https://github.com/jupyter/notebook/issues/3130
18 | c.FileContentsManager.delete_to_trash = False
19 |
20 | def _codeserver_command(port):
21 | full_path = shutil.which("code-server")
22 | if not full_path:
23 | raise FileNotFoundError("Can not find code-server in $PATH")
24 | work_dir = os.getenv("CODE_WORKDIR", None)
25 | if work_dir is None:
26 | work_dir = os.getenv("JUPYTER_SERVER_ROOT", ".")
27 | elif os.path.isdir(work_dir) is False:
28 | os.mkdir(work_dir)
29 | data_dir = os.getenv("CODE_USER_DATA_DIR", "")
30 | if data_dir != "":
31 | data_dir = "--user-data-dir=" + str(data_dir)
32 | extensions_dir = os.getenv("CODE_EXTENSIONS_DIR", "")
33 | if extensions_dir != "":
34 | extensions_dir = "--extensions-dir=" + str(extensions_dir)
35 |
36 | return [
37 | full_path,
38 | "--socket={unix_socket}",
39 | "--auth=none",
40 | "--disable-update-check",
41 | "--disable-telemetry",
42 | data_dir,
43 | extensions_dir,
44 | work_dir,
45 | ]
46 |
47 | c.ServerProxy.servers = {
48 | "code-server": {
49 | "command": _codeserver_command,
50 | "timeout": 20,
51 | "launcher_entry": {
52 | "title": "code-server",
53 | "icon_path": "/opt/code-server/code-server.svg"
54 | },
55 | "unix_socket": "/tmp/code-server-ipc.sock",
56 | "new_browser_tab": True
57 | }
58 | }
59 |
60 | # Generate a self-signed certificate
61 | OPENSSL_CONFIG = """\
62 | [req]
63 | distinguished_name = req_distinguished_name
64 | [req_distinguished_name]
65 | """
66 | if "GEN_CERT" in os.environ:
67 | dir_name = Path(jupyter_data_dir())
68 | dir_name.mkdir(parents=True, exist_ok=True)
69 | pem_file = dir_name / "notebook.pem"
70 |
71 | # Generate an openssl.cnf file to set the distinguished name
72 | cnf_file = Path("/usr/lib/ssl/openssl.cnf")
73 | if not cnf_file.exists():
74 | cnf_file.write_text(OPENSSL_CONFIG)
75 |
76 | # Generate a certificate if one doesn't exist on disk
77 | subprocess.check_call(
78 | [
79 | "openssl",
80 | "req",
81 | "-new",
82 | "-newkey=rsa:2048",
83 | "-days=365",
84 | "-nodes",
85 | "-x509",
86 | "-subj=/C=XX/ST=XX/L=XX/O=generated/CN=generated",
87 | f"-keyout={pem_file}",
88 | f"-out={pem_file}",
89 | ]
90 | )
91 | # Restrict access to the file
92 | pem_file.chmod(stat.S_IRUSR | stat.S_IWUSR)
93 | c.ServerApp.certfile = str(pem_file)
94 |
95 | # Change default umask for all subprocesses of the notebook server if set in the environment
96 | if "NB_UMASK" in os.environ:
97 | os.umask(int(os.environ["NB_UMASK"], 8))
98 |
--------------------------------------------------------------------------------
/base/conf/jupyterlab/usr/local/share/jupyter/lab/settings/overrides.json:
--------------------------------------------------------------------------------
1 | {
2 | "@jupyterlab/apputils-extension:notification": {
3 | "checkForUpdates": false,
4 | "fetchNews": false
5 | },
6 | "@jupyterlab/apputils-extension:themes": {
7 | "theme": "JupyterLab Dark"
8 | },
9 | "@jupyterlab/terminal-extension:plugin": {
10 | "fontFamily": "MesloLGS NF"
11 | },
12 | "@jupyter-lsp/jupyterlab-lsp:plugin": {
13 | "language_servers": {
14 | "pylsp": {
15 | "serverSettings": {
16 | "pylsp.plugins.pydocstyle.enabled": true,
17 | "pylsp.plugins.pyflakes.enabled": false,
18 | "pylsp.plugins.flake8.enabled": true
19 | }
20 | },
21 | "r-languageserver": {
22 | "serverSettings": {
23 | "r.lsp.debug": false,
24 | "r.lsp.diagnostics": false
25 | }
26 | }
27 | }
28 | }
29 | }
--------------------------------------------------------------------------------
/base/conf/rstudio/etc/rstudio/file-locks:
--------------------------------------------------------------------------------
1 | lock-type=advisory
2 |
--------------------------------------------------------------------------------
/base/conf/rstudio/etc/rstudio/logging.conf:
--------------------------------------------------------------------------------
1 | [*]
2 | log-level=warn
3 | logger-type=syslog
4 |
--------------------------------------------------------------------------------
/base/conf/rstudio/etc/rstudio/rserver.conf:
--------------------------------------------------------------------------------
1 | # Server Configuration File
2 |
3 | auth-minimum-user-id=0
4 |
--------------------------------------------------------------------------------
/base/conf/rstudio/etc/rstudio/rsession.conf:
--------------------------------------------------------------------------------
1 | # R Session Configuration File
2 |
3 | session-default-new-project-dir=~/projects
4 | copilot-enabled=1
5 |
--------------------------------------------------------------------------------
/base/conf/shell/etc/profile.d/00-reset-path.sh:
--------------------------------------------------------------------------------
1 | # Reset default PATH settings
2 | PATH="/opt/code-server/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
3 | export PATH
4 |
--------------------------------------------------------------------------------
/base/conf/shell/etc/skel/.profile:
--------------------------------------------------------------------------------
1 | # ~/.profile: executed by the command interpreter for login shells.
2 | # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
3 | # exists.
4 | # see /usr/share/doc/bash/examples/startup-files for examples.
5 | # the files are located in the bash-doc package.
6 |
7 | # the default umask is set in /etc/profile; for setting the umask
8 | # for ssh logins, install and configure the libpam-umask package.
9 | #umask 022
10 |
11 | # if running bash
12 | if [ -n "$BASH_VERSION" ]; then
13 | # include .bashrc if it exists
14 | if [ -f "$HOME/.bashrc" ]; then
15 | . "$HOME/.bashrc"
16 | fi
17 | else
18 | # set PATH so it includes user's private bin if it exists
19 | if [ -d "$HOME/bin" ] ; then
20 | PATH="$HOME/bin:$PATH"
21 | fi
22 |
23 | # set PATH so it includes user's private bin if it exists
24 | if [ -d "$HOME/.local/bin" ] ; then
25 | PATH="$HOME/.local/bin:$PATH"
26 | fi
27 | fi
28 |
--------------------------------------------------------------------------------
/base/conf/shell/etc/zsh/zprofile:
--------------------------------------------------------------------------------
1 | # /etc/zsh/zprofile: system-wide .zprofile file for zsh(1).
2 | #
3 | # This file is sourced only for login shells (i.e. shells
4 | # invoked with "-" as the first character of argv[0], and
5 | # shells invoked with the -l flag.)
6 | #
7 | # Global Order: zshenv, zprofile, zshrc, zlogin
8 |
9 | . /etc/profile.d/00-reset-path.sh
10 |
--------------------------------------------------------------------------------
/base/conf/user/var/backups/skel/.config/rstudio/rstudio-prefs.json:
--------------------------------------------------------------------------------
1 | {
2 | "auto_append_newline": true,
3 | "check_arguments_to_r_function_calls": true,
4 | "check_for_updates": false,
5 | "check_unexpected_assignment_in_function_call": true,
6 | "default_encoding": "UTF-8",
7 | "default_open_project_location": "~/projects",
8 | "editor_theme": "Tomorrow Night",
9 | "initial_working_directory": "~/working",
10 | "load_workspace": false,
11 | "posix_terminal_shell": "zsh",
12 | "python_project_environment_automatic_activate": false,
13 | "reuse_sessions_for_project_links": true,
14 | "save_workspace": "never",
15 | "server_editor_font": "MesloLGS NF",
16 | "server_editor_font_enabled": true,
17 | "style_diagnostics": true,
18 | "warn_variable_defined_but_not_used": true
19 | }
20 |
--------------------------------------------------------------------------------
/base/conf/user/var/backups/skel/.local/share/code-server/User/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "editor.tabSize": 2,
3 | "gitlab.aiAssistedCodeSuggestions.enabled": false,
4 | "gitlab.duo.enabledWithoutGitlabProject": false,
5 | "gitlab.duoChat.enabled": false,
6 | "gitlens.graph.statusBar.enabled": false,
7 | "gitlens.menus": {
8 | "scm": {
9 | "graph": false
10 | },
11 | "scmRepositoryInline": {
12 | "graph": false
13 | },
14 | "scmRepository": {
15 | "graph": false
16 | }
17 | },
18 | "gitlens.showWelcomeOnInstall": false,
19 | "gitlens.showWhatsNewAfterUpgrades": false,
20 | "python.languageServer": "Jedi",
21 | "r.bracketedPaste": true,
22 | "r.plot.useHttpgd": true,
23 | "r.rterm.linux": "/usr/local/bin/radian",
24 | "r.rterm.option": [
25 | "--no-save",
26 | "--no-restore"
27 | ],
28 | "r.workspaceViewer.showObjectSize": true,
29 | "resmon.show.battery": false,
30 | "resmon.show.cpufreq": false,
31 | "telemetry.telemetryLevel": "off",
32 | "terminal.integrated.fontFamily": "MesloLGS NF",
33 | "workbench.colorTheme": "Default Dark+"
34 | }
35 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/10-env.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2020 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | # Set defaults for environment variables in case they are undefined
8 | LANG=${LANG:=en_US.UTF-8}
9 | TZ=${TZ:=Etc/UTC}
10 |
11 | # Info about timezone
12 | _log "TZ is set to $TZ (/etc/localtime and /etc/timezone remain unchanged)"
13 |
14 | if [ "$(id -u)" == 0 ] ; then
15 | # Add/Update locale if requested
16 | if [ -n "$LANGS" ]; then
17 | for i in $LANGS; do
18 | sed -i "s/# $i/$i/g" /etc/locale.gen
19 | done
20 | fi
21 | if [ "$LANG" != "en_US.UTF-8" ]; then
22 | sed -i "s/# $LANG/$LANG/g" /etc/locale.gen
23 | fi
24 | if [[ "$LANG" != "en_US.UTF-8" || -n "$LANGS" ]]; then
25 | locale-gen --keep-existing
26 | fi
27 | update-locale --reset LANG="$LANG"
28 | # Info about locale
29 | _log "LANG is set to $LANG"
30 | else
31 | # Warn if the user wants to add locales but hasn't started the container as
32 | # root.
33 | if [ -n "$LANGS" ]; then
34 | _log "WARNING: Container must be started as root to add locale(s)!"
35 | fi
36 | # Warn if the user wants to change to a locale that is not available.
37 | if ! grep -v '^#' < /etc/locale.gen | grep -q "$LANG"; then
38 | _log "WARNING: Locale $LANG is not available!"
39 | . /etc/default/locale
40 | _log "WARNING: Resetting LANG to $LANG"
41 | else
42 | # Info about locale
43 | _log "LANG is set to $LANG"
44 | fi
45 | fi
46 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/11-home.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2020 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | if [ "$(id -u)" == 0 ] ; then
8 | # Create user's projects and workspaces folder
9 | run_user_group mkdir -p "/home/$NB_USER${DOMAIN:+@$DOMAIN}/projects"
10 | run_user_group mkdir -p "/home/$NB_USER${DOMAIN:+@$DOMAIN}/workspaces"
11 |
12 | # Remove old .zcompdump files
13 | rm -f "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.zcompdump"*
14 | else
15 | # Create user's projects and workspaces folder
16 | mkdir -p "$HOME/projects"
17 | mkdir -p "$HOME/workspaces"
18 |
19 | # Remove old .zcompdump files
20 | rm -f "$HOME/.zcompdump"*
21 | fi
22 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/12-r.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2020 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | if [ "$(id -u)" == 0 ] ; then
8 | if [ "${NB_USER}" = "root" ] && [ "${NB_UID}" = "$(id -u "${NB_USER}")" ] && [ "${NB_GID}" = "$(id -g "${NB_USER}")" ]; then
9 | HOME="/home/root"
10 | fi
11 | # Create user's R package library
12 | RLU=$(run_user_group Rscript -e "cat(Sys.getenv('R_LIBS_USER'))")
13 | run_user_group mkdir -p "$RLU"
14 | else
15 | # Create user's R package library
16 | RLU=$(Rscript -e "cat(Sys.getenv('R_LIBS_USER'))")
17 | mkdir -p "$RLU"
18 | fi
19 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/13-update-cran.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2024 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | CRAN_ORIG=$(sed -n "s/.*CRAN='\(.*\)'),.*$/\1/p" "$(R RHOME)/etc/Rprofile.site")
8 | CRAN_ORIG_P3M=${CRAN_ORIG//packagemanager.posit.co/p3m.dev}
9 |
10 | # Update CRAN mirror
11 | if [[ "$CRAN" != "$CRAN_ORIG" ]]; then
12 | _log "Setting CRAN mirror to $CRAN"
13 | sed -i "s|$CRAN_ORIG|$CRAN|g" "$(R RHOME)/etc/Rprofile.site"
14 | fi
15 |
16 | # Use binary packages
17 | if [[ "$R_BINARY_PACKAGES" == "1" || "$R_BINARY_PACKAGES" == "yes" ]]; then
18 | if [[ "$CRAN" == "$CRAN_ORIG" || "$CRAN" == "$CRAN_ORIG_P3M" ]]; then
19 | . /etc/os-release
20 | # Update environment variable CRAN
21 | _log "Updating CRAN mirror:"
22 | _log "- from: $CRAN"
23 | CRAN=${CRAN//cran/"cran/__linux__/$VERSION_CODENAME"}
24 | export CRAN
25 | # Set options repos and HTTPUserAgent in Rprofile.site
26 | sed -i "s|cran|cran/__linux__/$VERSION_CODENAME|g" \
27 | "$(R RHOME)/etc/Rprofile.site"
28 | echo '# https://docs.rstudio.com/rspm/admin/serving-binaries/#binaries-r-configuration-linux' \
29 | >> "$(R RHOME)/etc/Rprofile.site"
30 | echo 'options(HTTPUserAgent = sprintf("R/%s R (%s)", getRversion(), paste(getRversion(), R.version["platform"], R.version["arch"], R.version["os"])))' \
31 | >> "$(R RHOME)/etc/Rprofile.site"
32 | _log "- to: $CRAN"
33 | else
34 | _log "WARNING: Use $CRAN_ORIG for switching to binary packages!"
35 | fi
36 | fi
37 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/30-code-server.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2020 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | if [ "$(id -u)" == 0 ] ; then
8 | CS_USD="/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/code-server/User"
9 | # Install code-server settings
10 | run_user_group mkdir -p "$CS_USD"
11 | if [[ ! -f "$CS_USD/settings.json" ]]; then
12 | run_user_group cp -a --no-preserve=ownership \
13 | /var/backups/skel/.local/share/code-server/User/settings.json \
14 | "$CS_USD/settings.json"
15 | fi
16 | # Update code-server settings
17 | run_user_group mv "$CS_USD/settings.json" "$CS_USD/settings.json.bak"
18 | run_user_group sed -i ':a;N;$!ba;s/,\n\}/\n}/g' "$CS_USD/settings.json.bak"
19 | if [[ $(jq . "$CS_USD/settings.json.bak" 2> /dev/null) ]]; then
20 | run_user_group jq -s '.[0] * .[1]' \
21 | /var/backups/skel/.local/share/code-server/User/settings.json \
22 | "$CS_USD/settings.json.bak" | run_user_group tee \
23 | "$CS_USD/settings.json" > /dev/null
24 | else
25 | run_user_group mv "$CS_USD/settings.json.bak" "$CS_USD/settings.json"
26 | fi
27 | else
28 | CS_USD="$HOME/.local/share/code-server/User"
29 | # Install code-server settings
30 | mkdir -p "$CS_USD"
31 | if [[ ! -f "$CS_USD/settings.json" ]]; then
32 | cp -a /var/backups/skel/.local/share/code-server/User/settings.json \
33 | "$CS_USD/settings.json"
34 | fi
35 | # Update code-server settings
36 | mv "$CS_USD/settings.json" "$CS_USD/settings.json.bak"
37 | sed -i ':a;N;$!ba;s/,\n\}/\n}/g' "$CS_USD/settings.json.bak"
38 | if [[ $(jq . "$CS_USD/settings.json.bak" 2> /dev/null) ]]; then
39 | jq -s '.[0] * .[1]' \
40 | /var/backups/skel/.local/share/code-server/User/settings.json \
41 | "$CS_USD/settings.json.bak" | tee \
42 | "$CS_USD/settings.json" > /dev/null
43 | else
44 | mv "$CS_USD/settings.json.bak" "$CS_USD/settings.json"
45 | fi
46 | fi
47 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/50-rstudio.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2024 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | # Set environment variables in Renviron.site
8 | exclude_vars="HOME LD_LIBRARY_PATH OLDPWD PATH PWD RSTUDIO_VERSION SHLVL"
9 | for var in $(compgen -e); do
10 | [[ ! $exclude_vars =~ $var ]] && echo "$var=${!var}" \
11 | >> "$(R RHOME)/etc/Renviron.site"
12 | done
13 |
14 | if [ "$(id -u)" == 0 ]; then
15 | RS_USD="/home/$NB_USER${DOMAIN:+@$DOMAIN}/.config/rstudio"
16 | # Install RStudio settings
17 | run_user_group mkdir -p "$RS_USD"
18 | if [[ ! -f "$RS_USD/rstudio-prefs.json" ]]; then
19 | run_user_group cp -a --no-preserve=ownership \
20 | /var/backups/skel/.config/rstudio/rstudio-prefs.json \
21 | "$RS_USD/rstudio-prefs.json"
22 | fi
23 | # Create user's working folder
24 | run_user_group mkdir -p "/home/$NB_USER${DOMAIN:+@$DOMAIN}/working"
25 | else
26 | RS_USD="$HOME/.config/rstudio"
27 | # Install RStudio settings
28 | mkdir -p "$RS_USD"
29 | if [[ ! -f "$RS_USD/rstudio-prefs.json" ]]; then
30 | cp -a /var/backups/skel/.config/rstudio/rstudio-prefs.json \
31 | "$RS_USD/rstudio-prefs.json"
32 | fi
33 | # Create user's working folder
34 | mkdir -p "$HOME/working"
35 | fi
36 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/71-tensorboard.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) Jupyter Development Team.
3 | # Distributed under the terms of the Modified BSD License.
4 |
5 | set -e
6 |
7 | # Initialize the TENSORBOARD_PROXY_URL with the appropriate path
8 | # to use jupyter-server-proxy.
9 |
10 | export TENSORBOARD_PROXY_URL="${JUPYTERHUB_SERVICE_PREFIX:-/}proxy/%PORT%/"
11 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/90-limits.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2023 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | if [ "$(id -u)" != 0 ]; then
8 | soft_limit=1
9 | fi
10 |
11 | if [[ "$SWAP_ENABLE" == "1" || "$SWAP_ENABLE" == "yes" ]]; then
12 | factor=$(echo 1 "${SWAP_FACTOR:-1}" | awk '{ printf "%.1f", $1 + $2 }')
13 | else
14 | factor=1
15 | fi
16 |
17 | # Limit address space: Soft when run as root and as other user
18 | if [ -n "$MEM_LIMIT" ]; then
19 | NO_AS_LIMIT=${NO_AS_LIMIT:-$NO_MEM_LIMIT}
20 | # Do not limit if NO_AS_LIMIT or NO_MEM_LIMIT is set to 1 or yes
21 | if [[ "$NO_AS_LIMIT" != "1" && "$NO_AS_LIMIT" != "yes" ]]; then
22 | prlimit --pid $$ --as="$(echo "$MEM_LIMIT" "$factor" |
23 | awk '{ printf "%.0f", $1 * $2 }')":
24 | fi
25 | fi
26 |
27 | # Other limits: Hard when run as root user; Soft when run as other user
28 | # pending signals
29 | if [ -n "$SIGPEN_LIMIT" ]; then
30 | prlimit --pid $$ --sigpending="$(printf %.0f "$SIGPEN_LIMIT")"${soft_limit:+:}
31 | fi
32 |
33 | # file descriptors
34 | if [ -n "$NOFILE_LIMIT" ]; then
35 | prlimit --pid $$ --nofile="$(printf %.0f "$NOFILE_LIMIT")"${soft_limit:+:}
36 | fi
37 |
38 | # processes
39 | if [ -n "$NPROC_LIMIT" ]; then
40 | prlimit --pid $$ --nproc="$(printf %.0f "$NPROC_LIMIT")"${soft_limit:+:}
41 | fi
42 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/before-notebook.d/95-misc.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2024 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | # Export environment variables to /tmp/environment
8 | exclude_vars="HOME OLDPWD PWD SHLVL"
9 | for var in $(compgen -e); do
10 | [[ ! $exclude_vars =~ $var ]] && echo "$var=${!var}" \
11 | >> "/tmp/environment"
12 | done
13 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/busy:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2022 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | while [ -n "$JUPYTERHUB_API_TOKEN" ]; do
6 | t=$(date -Iseconds)
7 | curl -s \
8 | "$JUPYTERHUB_ACTIVITY_URL" -H \
9 | "Authorization: token $JUPYTERHUB_API_TOKEN" -d \
10 | "{\"servers\":{\"$JUPYTERHUB_SERVER_NAME\":{\"last_activity\":\"$t\"}},\"last_activity\":\"$t\"}" \
11 | > /dev/null 2>&1
12 | sleep 300
13 | done
14 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/python-kernel.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2024 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | # Get SHELL and run commands
6 | SHELL="$(readlink /proc/$$/exe)"
7 | . "$HOME/.$(basename "$SHELL")rc"
8 |
9 | # Set PATH so it includes user's private bin if it exists
10 | if [ -d "$HOME/bin" ] && [[ "$PATH" != *"$HOME/bin"* ]] ; then
11 | PATH="$HOME/bin:$PATH"
12 | fi
13 | if [ -d "$HOME/.local/bin" ] && [[ "$PATH" != *"$HOME/.local/bin"* ]] ; then
14 | PATH="$HOME/.local/bin:$PATH"
15 | fi
16 |
17 | # Set Python to start kernel with
18 | KERNEL_PYTHON_EXE="$(command -v python)"
19 | KERNEL_PYTHON_EXE="${KERNEL_PYTHON_EXE:-$(command -v python3)}"
20 |
21 | # Activate environment if set
22 | if [ -n "$__conda_env" ]; then
23 | if [ -z "$CONDA_DEFAULT_ENV" ]; then
24 | eval CONDA_DIR="${CONDA_DIR:-$HOME/miniconda3}"
25 | eval "$("$CONDA_DIR/bin/conda" shell."$(basename "$SHELL")" hook)"
26 | fi
27 | if [ "$(basename "$__conda_env")" != "$(basename "$CONDA_PREFIX")" ]; then
28 | conda activate "$(basename "$__conda_env")"
29 | fi
30 | unset __conda_env
31 | elif [ -n "$__virtual_env" ]; then
32 | if [ "$__virtual_env" != "$VIRTUAL_ENV" ]; then
33 | eval __virtual_env="$__virtual_env"
34 | . "$__virtual_env/bin/activate"
35 | fi
36 | unset __virtual_env
37 | fi
38 |
39 | export SHELL
40 |
41 | # Start Python kernel
42 | exec "$KERNEL_PYTHON_EXE" -m ipykernel_launcher "$@"
43 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/run-hooks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) Jupyter Development Team.
3 | # Distributed under the terms of the Modified BSD License.
4 |
5 | # The run-hooks.sh script looks for *.sh scripts to source
6 | # and executable files to run within a passed directory
7 |
8 | if [ "$#" -ne 1 ]; then
9 | echo "Should pass exactly one directory"
10 | return 1
11 | fi
12 |
13 | if [[ ! -d "${1}" ]]; then
14 | echo "Directory ${1} doesn't exist or is not a directory"
15 | return 1
16 | fi
17 |
18 | echo "Running hooks in: ${1} as uid: $(id -u) gid: $(id -g)"
19 | for f in "${1}/"*; do
20 | # Handling a case when the directory is empty
21 | [ -e "${f}" ] || continue
22 | case "${f}" in
23 | *.sh)
24 | echo "Sourcing shell script: ${f}"
25 | # shellcheck disable=SC1090
26 | source "${f}"
27 | # shellcheck disable=SC2181
28 | if [ $? -ne 0 ]; then
29 | echo "${f} has failed, continuing execution"
30 | fi
31 | ;;
32 | *)
33 | if [ -x "${f}" ]; then
34 | echo "Running executable: ${f}"
35 | "${f}"
36 | # shellcheck disable=SC2181
37 | if [ $? -ne 0 ]; then
38 | echo "${f} has failed, continuing execution"
39 | fi
40 | else
41 | echo "Ignoring non-executable: ${f}"
42 | fi
43 | ;;
44 | esac
45 | done
46 | echo "Done running hooks in: ${1}"
47 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/start-notebook.d/10-populate.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2020 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | if [ ! -f /home/jovyan/.populated ]; then
8 | # Create list of missing files (top level only)
9 | fd="$(comm -13 <(cd /home/jovyan; ls -A) <(cd /var/backups/skel; ls -A) \
10 | | paste -sd ',' -)"
11 | # Handle case when only marker is missing
12 | if [[ "${fd}" == ".populated" ]]; then
13 | sf="${fd}"
14 | else
15 | sf="{${fd}}"
16 | fi
17 | _log "Populating home dir: /home/jovyan"
18 | _log "Copying files/directories (recursively):"
19 | _log "- ${fd}"
20 | if eval "cp -a /var/backups/skel/${sf} /home/jovyan"; then
21 | date -uIseconds > /home/jovyan/.populated
22 | _log "Done populating home dir"
23 | else
24 | _log "ERROR: Failed to copy data from /var/backups/skel to /home/jovyan!"
25 | exit 1
26 | fi
27 | fi
28 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/start-notebook.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) Jupyter Development Team.
3 | # Distributed under the terms of the Modified BSD License.
4 |
5 | set -e
6 |
7 | # The Jupyter command to launch
8 | # JupyterLab by default
9 | DOCKER_STACKS_JUPYTER_CMD="${DOCKER_STACKS_JUPYTER_CMD:=lab}"
10 |
11 | if [[ -n "${JUPYTERHUB_API_TOKEN}" ]]; then
12 | echo "WARNING: using start-singleuser.sh instead of start-notebook.sh to start a server associated with JupyterHub."
13 | exec /usr/local/bin/start-singleuser.sh "$@"
14 | fi
15 |
16 | wrapper=""
17 | if [[ "${RESTARTABLE}" == "yes" ]]; then
18 | wrapper="run-one-constantly"
19 | fi
20 |
21 | echo "Executing:" ${wrapper} "jupyter" "${DOCKER_STACKS_JUPYTER_CMD}" "${NOTEBOOK_ARGS}" "$@"
22 | # shellcheck disable=SC1091,SC2086
23 | exec ${wrapper} jupyter ${DOCKER_STACKS_JUPYTER_CMD} ${NOTEBOOK_ARGS} "$@"
24 |
--------------------------------------------------------------------------------
/base/scripts/usr/local/bin/start-singleuser.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) Jupyter Development Team.
3 | # Distributed under the terms of the Modified BSD License.
4 |
5 | set -e
6 |
7 | # JupyterHub singleuser arguments are set using environment variables
8 |
9 | echo "Executing: jupyterhub-singleuser" "${NOTEBOOK_ARGS}" "$@"
10 | # shellcheck disable=SC1091,SC2086
11 | exec jupyterhub-singleuser ${NOTEBOOK_ARGS} "$@"
12 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.2.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=bullseye
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.2.2
5 |
6 | ARG NODE_VERSION=16.19.1
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Install Node.js
26 | COPY --from=nsi /usr/local /usr/local
27 |
28 | USER root
29 |
30 | ENV HOME=/root
31 |
32 | WORKDIR ${HOME}
33 |
34 | RUN apt-get update \
35 | && apt-get install -y --no-install-recommends \
36 | bats \
37 | libsecret-1-dev \
38 | libx11-dev \
39 | libxkbfile-dev \
40 | libxt6 \
41 | quilt \
42 | rsync \
43 | && if [ ! -z "$PYTHON_VERSION" ]; then \
44 | ## make some useful symlinks that are expected to exist
45 | ## ("/usr/bin/python" and friends)
46 | for src in pydoc3 python3; do \
47 | dst="$(echo "$src" | tr -d 3)"; \
48 | [ -s "/usr/bin/$src" ]; \
49 | [ ! -e "/usr/bin/$dst" ]; \
50 | ln -svT "$src" "/usr/bin/$dst"; \
51 | done; \
52 | fi \
53 | ## Clean up Node.js installation
54 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
55 | && bash -c 'rm -f /usr/local/{CHANGELOG.md,LICENSE,README.md}' \
56 | ## Enable corepack (Yarn, pnpm)
57 | && corepack enable \
58 | ## Install nFPM
59 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
60 | | tee /etc/apt/sources.list.d/goreleaser.list \
61 | && apt-get update \
62 | && apt-get install -y --no-install-recommends nfpm \
63 | ## Install code-server extensions
64 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension dbaeumer.vscode-eslint \
65 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension esbenp.prettier-vscode \
66 | ## Clean up
67 | && rm -rf /tmp/* \
68 | && rm -rf /var/lib/apt/lists/* \
69 | /root/.config \
70 | /root/.local
71 |
72 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
73 | USER ${NB_USER}
74 |
75 | ENV HOME=/home/${NB_USER}
76 |
77 | WORKDIR ${HOME}
78 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.2.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=bullseye
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.2.3
5 |
6 | ARG NODE_VERSION=16.20.0
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Install Node.js
26 | COPY --from=nsi /usr/local /usr/local
27 |
28 | USER root
29 |
30 | ENV HOME=/root
31 |
32 | WORKDIR ${HOME}
33 |
34 | RUN apt-get update \
35 | && apt-get install -y --no-install-recommends \
36 | bats \
37 | libsecret-1-dev \
38 | libx11-dev \
39 | libxkbfile-dev \
40 | libxt6 \
41 | quilt \
42 | rsync \
43 | && if [ ! -z "$PYTHON_VERSION" ]; then \
44 | ## make some useful symlinks that are expected to exist
45 | ## ("/usr/bin/python" and friends)
46 | for src in pydoc3 python3; do \
47 | dst="$(echo "$src" | tr -d 3)"; \
48 | [ -s "/usr/bin/$src" ]; \
49 | [ ! -e "/usr/bin/$dst" ]; \
50 | ln -svT "$src" "/usr/bin/$dst"; \
51 | done; \
52 | fi \
53 | ## Clean up Node.js installation
54 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
55 | && bash -c 'rm -f /usr/local/{CHANGELOG.md,LICENSE,README.md}' \
56 | ## Enable corepack (Yarn, pnpm)
57 | && corepack enable \
58 | ## Install nFPM
59 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
60 | | tee /etc/apt/sources.list.d/goreleaser.list \
61 | && apt-get update \
62 | && apt-get install -y --no-install-recommends nfpm \
63 | ## Install code-server extensions
64 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension dbaeumer.vscode-eslint \
65 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension esbenp.prettier-vscode \
66 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension ms-python.black-formatter \
67 | ## Clean up
68 | && rm -rf /tmp/* \
69 | && rm -rf /var/lib/apt/lists/* \
70 | /root/.config \
71 | /root/.local
72 |
73 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
74 | USER ${NB_USER}
75 |
76 | ENV HOME=/home/${NB_USER}
77 |
78 | WORKDIR ${HOME}
79 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.3.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.3.0
5 |
6 | ARG NODE_VERSION=16.20.0
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Install Node.js
26 | COPY --from=nsi /usr/local /usr/local
27 |
28 | USER root
29 |
30 | ENV HOME=/root
31 |
32 | WORKDIR ${HOME}
33 |
34 | RUN apt-get update \
35 | && apt-get install -y --no-install-recommends \
36 | bats \
37 | libsecret-1-dev \
38 | libx11-dev \
39 | libxkbfile-dev \
40 | libxt6 \
41 | quilt \
42 | rsync \
43 | && if [ ! -z "$PYTHON_VERSION" ]; then \
44 | ## make some useful symlinks that are expected to exist
45 | ## ("/usr/bin/python" and friends)
46 | for src in pydoc3 python3; do \
47 | dst="$(echo "$src" | tr -d 3)"; \
48 | [ -s "/usr/bin/$src" ]; \
49 | [ ! -e "/usr/bin/$dst" ]; \
50 | ln -svT "$src" "/usr/bin/$dst"; \
51 | done; \
52 | fi \
53 | ## Clean up Node.js installation
54 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
55 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
56 | /usr/local/share/doc/node' \
57 | ## Enable corepack (Yarn, pnpm)
58 | && corepack enable \
59 | ## Install nFPM
60 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
61 | | tee /etc/apt/sources.list.d/goreleaser.list \
62 | && apt-get update \
63 | && apt-get install -y --no-install-recommends nfpm \
64 | ## Install code-server extensions
65 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension dbaeumer.vscode-eslint \
66 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension esbenp.prettier-vscode \
67 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension ms-python.black-formatter \
68 | ## Clean up
69 | && rm -rf /tmp/* \
70 | && rm -rf /var/lib/apt/lists/* \
71 | ${HOME}/.config \
72 | ${HOME}/.local
73 |
74 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
75 | USER ${NB_USER}
76 |
77 | ENV HOME=/home/${NB_USER}
78 |
79 | WORKDIR ${HOME}
80 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.3.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.3.1
5 |
6 | ARG NODE_VERSION=18.18.2
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Install Node.js
26 | COPY --from=nsi /usr/local /usr/local
27 |
28 | USER root
29 |
30 | ENV HOME=/root
31 |
32 | WORKDIR ${HOME}
33 |
34 | RUN apt-get update \
35 | && apt-get install -y --no-install-recommends \
36 | bats \
37 | libkrb5-dev \
38 | libsecret-1-dev \
39 | libx11-dev \
40 | libxkbfile-dev \
41 | libxt6 \
42 | quilt \
43 | rsync \
44 | && if [ -n "$PYTHON_VERSION" ]; then \
45 | ## make some useful symlinks that are expected to exist
46 | ## ("/usr/bin/python" and friends)
47 | for src in pydoc3 python3; do \
48 | dst="$(echo "$src" | tr -d 3)"; \
49 | [ -s "/usr/bin/$src" ]; \
50 | [ ! -e "/usr/bin/$dst" ]; \
51 | ln -svT "$src" "/usr/bin/$dst"; \
52 | done; \
53 | fi \
54 | ## Clean up Node.js installation
55 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
56 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
57 | /usr/local/share/doc/node' \
58 | ## Enable corepack (Yarn, pnpm)
59 | && corepack enable \
60 | ## Install nFPM
61 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
62 | | tee /etc/apt/sources.list.d/goreleaser.list \
63 | && apt-get update \
64 | && apt-get install -y --no-install-recommends nfpm \
65 | ## Install code-server extensions
66 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
67 | --install-extension dbaeumer.vscode-eslint \
68 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
69 | --install-extension esbenp.prettier-vscode \
70 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
71 | --install-extension ms-python.black-formatter \
72 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
73 | --install-extension timonwong.shellcheck \
74 | ## Enable shellcheck system-wide
75 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
76 | /usr/local/bin/shellcheck \
77 | ## Clean up
78 | && rm -rf /tmp/* \
79 | && rm -rf /var/lib/apt/lists/* \
80 | "$HOME/.config" \
81 | "$HOME/.local"
82 |
83 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
84 | USER ${NB_USER}
85 |
86 | ENV HOME=/home/${NB_USER}
87 |
88 | WORKDIR ${HOME}
89 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.3.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.3.2
5 |
6 | ARG NODE_VERSION=18.19.1
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Install Node.js
26 | COPY --from=nsi /usr/local /usr/local
27 |
28 | USER root
29 |
30 | ENV HOME=/root
31 |
32 | WORKDIR ${HOME}
33 |
34 | RUN apt-get update \
35 | && apt-get install -y --no-install-recommends \
36 | bats \
37 | libkrb5-dev \
38 | libsecret-1-dev \
39 | libx11-dev \
40 | libxkbfile-dev \
41 | libxt6 \
42 | quilt \
43 | rsync \
44 | && if [ -n "$PYTHON_VERSION" ]; then \
45 | ## make some useful symlinks that are expected to exist
46 | ## ("/usr/bin/python" and friends)
47 | for src in pydoc3 python3 python3-config; do \
48 | dst="$(echo "$src" | tr -d 3)"; \
49 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
50 | ln -svT "$src" "/usr/bin/$dst"; \
51 | fi \
52 | done; \
53 | fi \
54 | ## Clean up Node.js installation
55 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
56 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
57 | /usr/local/share/doc/node' \
58 | ## Enable corepack (Yarn, pnpm)
59 | && corepack enable \
60 | ## Install nFPM
61 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
62 | | tee /etc/apt/sources.list.d/goreleaser.list \
63 | && apt-get update \
64 | && apt-get install -y --no-install-recommends nfpm \
65 | ## Install code-server extensions
66 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
67 | --install-extension dbaeumer.vscode-eslint \
68 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
69 | --install-extension esbenp.prettier-vscode \
70 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
71 | --install-extension ms-python.black-formatter \
72 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
73 | --install-extension timonwong.shellcheck \
74 | ## Enable shellcheck system-wide
75 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
76 | /usr/local/bin/shellcheck \
77 | ## Clean up
78 | && rm -rf /tmp/* \
79 | && rm -rf /var/lib/apt/lists/* \
80 | "$HOME/.config" \
81 | "$HOME/.local"
82 |
83 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
84 | USER ${NB_USER}
85 |
86 | ENV HOME=/home/${NB_USER}
87 |
88 | WORKDIR ${HOME}
89 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.3.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.3.3
5 |
6 | ARG NODE_VERSION=18.19.1
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Install Node.js
26 | COPY --from=nsi /usr/local /usr/local
27 |
28 | USER root
29 |
30 | ENV HOME=/root
31 |
32 | WORKDIR ${HOME}
33 |
34 | RUN apt-get update \
35 | && apt-get install -y --no-install-recommends \
36 | bats \
37 | libkrb5-dev \
38 | libsecret-1-dev \
39 | libx11-dev \
40 | libxkbfile-dev \
41 | libxt6 \
42 | quilt \
43 | rsync \
44 | && if [ -n "$PYTHON_VERSION" ]; then \
45 | ## make some useful symlinks that are expected to exist
46 | ## ("/usr/bin/python" and friends)
47 | for src in pydoc3 python3 python3-config; do \
48 | dst="$(echo "$src" | tr -d 3)"; \
49 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
50 | ln -svT "$src" "/usr/bin/$dst"; \
51 | fi \
52 | done; \
53 | fi \
54 | ## Clean up Node.js installation
55 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
56 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
57 | /usr/local/share/doc/node' \
58 | ## Enable corepack (Yarn, pnpm)
59 | && corepack enable \
60 | ## Install nFPM
61 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
62 | | tee /etc/apt/sources.list.d/goreleaser.list \
63 | && apt-get update \
64 | && apt-get install -y --no-install-recommends nfpm \
65 | ## Install code-server extensions
66 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
67 | --install-extension dbaeumer.vscode-eslint \
68 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
69 | --install-extension esbenp.prettier-vscode \
70 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
71 | --install-extension ms-python.black-formatter \
72 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
73 | --install-extension timonwong.shellcheck \
74 | ## Enable shellcheck system-wide
75 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
76 | /usr/local/bin/shellcheck \
77 | ## Clean up
78 | && rm -rf /tmp/* \
79 | && rm -rf /var/lib/apt/lists/* \
80 | "$HOME/.config" \
81 | "$HOME/.local"
82 |
83 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
84 | USER ${NB_USER}
85 |
86 | ENV HOME=/home/${NB_USER}
87 |
88 | WORKDIR ${HOME}
89 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.4.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.4.0
5 |
6 | ARG NODE_VERSION=20.14.0
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Prevent Corepack showing the URL when it needs to download software
26 | ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
27 |
28 | ## Install Node.js
29 | COPY --from=nsi /usr/local /usr/local
30 |
31 | USER root
32 |
33 | ENV HOME=/root
34 |
35 | WORKDIR ${HOME}
36 |
37 | RUN apt-get update \
38 | && apt-get install -y --no-install-recommends \
39 | bats \
40 | libkrb5-dev \
41 | libsecret-1-dev \
42 | libx11-dev \
43 | libxkbfile-dev \
44 | libxt6 \
45 | quilt \
46 | rsync \
47 | && if [ -n "$PYTHON_VERSION" ]; then \
48 | ## make some useful symlinks that are expected to exist
49 | ## ("/usr/bin/python" and friends)
50 | for src in pydoc3 python3 python3-config; do \
51 | dst="$(echo "$src" | tr -d 3)"; \
52 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
53 | ln -svT "$src" "/usr/bin/$dst"; \
54 | fi \
55 | done; \
56 | fi \
57 | ## Clean up Node.js installation
58 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
59 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
60 | /usr/local/share/doc/node' \
61 | ## Enable corepack (Yarn, pnpm)
62 | && corepack enable \
63 | ## Install nFPM
64 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
65 | | tee /etc/apt/sources.list.d/goreleaser.list \
66 | && apt-get update \
67 | && apt-get install -y --no-install-recommends nfpm \
68 | ## Install code-server extensions
69 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
70 | --install-extension dbaeumer.vscode-eslint \
71 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
72 | --install-extension esbenp.prettier-vscode \
73 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
74 | --install-extension ms-python.black-formatter \
75 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
76 | --install-extension timonwong.shellcheck \
77 | ## Enable shellcheck system-wide
78 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
79 | /usr/local/bin/shellcheck \
80 | ## Clean up
81 | && rm -rf /tmp/* \
82 | && rm -rf /var/lib/apt/lists/* \
83 | "$HOME/.config" \
84 | "$HOME/.local"
85 |
86 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
87 | USER ${NB_USER}
88 |
89 | ENV HOME=/home/${NB_USER}
90 |
91 | WORKDIR ${HOME}
92 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.4.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.4.1
5 |
6 | ARG NODE_VERSION=20.18.0
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Prevent Corepack showing the URL when it needs to download software
26 | ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
27 |
28 | ## Install Node.js
29 | COPY --from=nsi /usr/local /usr/local
30 |
31 | USER root
32 |
33 | ENV HOME=/root
34 |
35 | WORKDIR ${HOME}
36 |
37 | RUN apt-get update \
38 | && apt-get install -y --no-install-recommends \
39 | bats \
40 | libkrb5-dev \
41 | libsecret-1-dev \
42 | libx11-dev \
43 | libxkbfile-dev \
44 | libxt6 \
45 | quilt \
46 | rsync \
47 | && if [ -n "$PYTHON_VERSION" ]; then \
48 | ## make some useful symlinks that are expected to exist
49 | ## ("/usr/bin/python" and friends)
50 | for src in pydoc3 python3 python3-config; do \
51 | dst="$(echo "$src" | tr -d 3)"; \
52 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
53 | ln -svT "$src" "/usr/bin/$dst"; \
54 | fi \
55 | done; \
56 | fi \
57 | ## Clean up Node.js installation
58 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
59 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
60 | /usr/local/share/doc/node' \
61 | ## Enable corepack (Yarn, pnpm)
62 | && corepack enable \
63 | ## Install nFPM
64 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
65 | | tee /etc/apt/sources.list.d/goreleaser.list \
66 | && apt-get update \
67 | && apt-get install -y --no-install-recommends nfpm \
68 | ## Install code-server extensions
69 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
70 | --install-extension dbaeumer.vscode-eslint \
71 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
72 | --install-extension esbenp.prettier-vscode \
73 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
74 | --install-extension ms-python.black-formatter \
75 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
76 | --install-extension timonwong.shellcheck \
77 | ## Enable shellcheck system-wide
78 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
79 | /usr/local/bin/shellcheck \
80 | ## Clean up
81 | && rm -rf /tmp/* \
82 | && rm -rf /var/lib/apt/lists/* \
83 | "$HOME/.config" \
84 | "$HOME/.local"
85 |
86 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
87 | USER ${NB_USER}
88 |
89 | ENV HOME=/home/${NB_USER}
90 |
91 | WORKDIR ${HOME}
92 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.4.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.4.2
5 |
6 | ARG NODE_VERSION=20.18.1
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Prevent Corepack showing the URL when it needs to download software
26 | ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
27 |
28 | ## Install Node.js
29 | COPY --from=nsi /usr/local /usr/local
30 |
31 | USER root
32 |
33 | ENV HOME=/root
34 |
35 | WORKDIR ${HOME}
36 |
37 | RUN apt-get update \
38 | && apt-get install -y --no-install-recommends \
39 | bats \
40 | libkrb5-dev \
41 | libsecret-1-dev \
42 | libx11-dev \
43 | libxkbfile-dev \
44 | libxt6 \
45 | quilt \
46 | rsync \
47 | && if [ -n "$PYTHON_VERSION" ]; then \
48 | ## make some useful symlinks that are expected to exist
49 | ## ("/usr/bin/python" and friends)
50 | for src in pydoc3 python3 python3-config; do \
51 | dst="$(echo "$src" | tr -d 3)"; \
52 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
53 | ln -svT "$src" "/usr/bin/$dst"; \
54 | fi \
55 | done; \
56 | fi \
57 | ## Clean up Node.js installation
58 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
59 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
60 | /usr/local/share/doc/node' \
61 | ## Enable corepack (Yarn, pnpm)
62 | && corepack enable \
63 | ## Install nFPM
64 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
65 | | tee /etc/apt/sources.list.d/goreleaser.list \
66 | && apt-get update \
67 | && apt-get install -y --no-install-recommends nfpm \
68 | ## Install code-server extensions
69 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
70 | --install-extension dbaeumer.vscode-eslint \
71 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
72 | --install-extension esbenp.prettier-vscode \
73 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
74 | --install-extension ms-python.black-formatter \
75 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
76 | --install-extension timonwong.shellcheck \
77 | ## Enable shellcheck system-wide
78 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
79 | /usr/local/bin/shellcheck \
80 | ## Clean up
81 | && rm -rf /tmp/* \
82 | && rm -rf /var/lib/apt/lists/* \
83 | "$HOME/.config" \
84 | "$HOME/.local"
85 |
86 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
87 | USER ${NB_USER}
88 |
89 | ENV HOME=/home/${NB_USER}
90 |
91 | WORKDIR ${HOME}
92 |
--------------------------------------------------------------------------------
/common/subtags/devtools/4.4.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION=4.4.3
5 |
6 | ARG NODE_VERSION=20.18.3
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Prevent Corepack showing the URL when it needs to download software
26 | ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
27 |
28 | ## Install Node.js
29 | COPY --from=nsi /usr/local /usr/local
30 |
31 | USER root
32 |
33 | ENV HOME=/root
34 |
35 | WORKDIR ${HOME}
36 |
37 | RUN apt-get update \
38 | && apt-get install -y --no-install-recommends \
39 | bats \
40 | libkrb5-dev \
41 | libsecret-1-dev \
42 | libx11-dev \
43 | libxkbfile-dev \
44 | libxt6 \
45 | quilt \
46 | rsync \
47 | && if [ -n "$PYTHON_VERSION" ]; then \
48 | ## make some useful symlinks that are expected to exist
49 | ## ("/usr/bin/python" and friends)
50 | for src in pydoc3 python3 python3-config; do \
51 | dst="$(echo "$src" | tr -d 3)"; \
52 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
53 | ln -svT "$src" "/usr/bin/$dst"; \
54 | fi \
55 | done; \
56 | fi \
57 | ## Clean up Node.js installation
58 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
59 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
60 | /usr/local/share/doc/node' \
61 | ## Enable corepack (Yarn, pnpm)
62 | && corepack enable \
63 | ## Install nFPM
64 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
65 | | tee /etc/apt/sources.list.d/goreleaser.list \
66 | && apt-get update \
67 | && apt-get install -y --no-install-recommends nfpm \
68 | ## Install code-server extensions
69 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
70 | --install-extension dbaeumer.vscode-eslint \
71 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
72 | --install-extension esbenp.prettier-vscode \
73 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
74 | --install-extension ms-python.black-formatter \
75 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
76 | --install-extension timonwong.shellcheck \
77 | ## Enable shellcheck system-wide
78 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
79 | /usr/local/bin/shellcheck \
80 | ## Clean up
81 | && rm -rf /tmp/* \
82 | && rm -rf /var/lib/apt/lists/* \
83 | "$HOME/.config" \
84 | "$HOME/.local"
85 |
86 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
87 | USER ${NB_USER}
88 |
89 | ENV HOME=/home/${NB_USER}
90 |
91 | WORKDIR ${HOME}
92 |
--------------------------------------------------------------------------------
/common/subtags/devtools/latest.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BASE_IMAGE=debian
2 | ARG BASE_IMAGE_TAG=12
3 | ARG BUILD_ON_IMAGE
4 | ARG R_VERSION
5 |
6 | ARG NODE_VERSION=20.19.0
7 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
8 |
9 | FROM glcr.b-data.ch/nodejs/nsi/${NODE_VERSION}/${BASE_IMAGE}:${BASE_IMAGE_TAG} AS nsi
10 |
11 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
12 |
13 | ARG DEBIAN_FRONTEND=noninteractive
14 |
15 | ARG BUILD_ON_IMAGE
16 |
17 | ARG NODE_VERSION
18 | ARG CODE_BUILTIN_EXTENSIONS_DIR
19 | ARG BUILD_START
20 |
21 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
22 | NODE_VERSION=${NODE_VERSION} \
23 | BUILD_DATE=${BUILD_START}
24 |
25 | ## Prevent Corepack showing the URL when it needs to download software
26 | ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
27 |
28 | ## Install Node.js
29 | COPY --from=nsi /usr/local /usr/local
30 |
31 | USER root
32 |
33 | ENV HOME=/root
34 |
35 | WORKDIR ${HOME}
36 |
37 | RUN apt-get update \
38 | && apt-get install -y --no-install-recommends \
39 | bats \
40 | libkrb5-dev \
41 | libsecret-1-dev \
42 | libx11-dev \
43 | libxkbfile-dev \
44 | libxt6 \
45 | quilt \
46 | rsync \
47 | && if [ -n "$PYTHON_VERSION" ]; then \
48 | ## make some useful symlinks that are expected to exist
49 | ## ("/usr/bin/python" and friends)
50 | for src in pydoc3 python3 python3-config; do \
51 | dst="$(echo "$src" | tr -d 3)"; \
52 | if [ -s "/usr/bin/$src" ] && [ ! -e "/usr/bin/$dst" ]; then \
53 | ln -svT "$src" "/usr/bin/$dst"; \
54 | fi \
55 | done; \
56 | fi \
57 | ## Clean up Node.js installation
58 | && bash -c 'rm -f /usr/local/bin/{docker-entrypoint.sh,yarn*}' \
59 | && bash -c 'mv /usr/local/{CHANGELOG.md,LICENSE,README.md} \
60 | /usr/local/share/doc/node' \
61 | ## Enable corepack (Yarn, pnpm)
62 | && corepack enable \
63 | ## Install nFPM
64 | && echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' \
65 | | tee /etc/apt/sources.list.d/goreleaser.list \
66 | && apt-get update \
67 | && apt-get install -y --no-install-recommends nfpm \
68 | ## Install code-server extensions
69 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
70 | --install-extension dbaeumer.vscode-eslint \
71 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
72 | --install-extension esbenp.prettier-vscode \
73 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
74 | --install-extension ms-python.black-formatter \
75 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
76 | --install-extension timonwong.shellcheck \
77 | ## Enable shellcheck system-wide
78 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
79 | /usr/local/bin/shellcheck \
80 | ## Clean up
81 | && rm -rf /tmp/* \
82 | && rm -rf /var/lib/apt/lists/* \
83 | "$HOME/.config" \
84 | "$HOME/.local"
85 |
86 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
87 | USER ${NB_USER}
88 |
89 | ENV HOME=/home/${NB_USER}
90 |
91 | WORKDIR ${HOME}
92 |
--------------------------------------------------------------------------------
/common/subtags/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE
2 |
3 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
4 |
5 | FROM ${BUILD_ON_IMAGE}
6 |
7 | ARG DEBIAN_FRONTEND=noninteractive
8 |
9 | ARG CODE_BUILTIN_EXTENSIONS_DIR
10 | ARG BUILD_START
11 |
12 | ENV BUILD_DATE=${BUILD_START}
13 |
14 | USER root
15 |
16 | ENV HOME=/root
17 |
18 | WORKDIR ${HOME}
19 |
20 | RUN dpkgArch="$(dpkg --print-architecture)" \
21 | && . /etc/os-release \
22 | && mkdir -p /etc/apt/keyrings \
23 | && chmod 0755 /etc/apt/keyrings \
24 | && pgpKey="$(curl -fsSL "https://download.docker.com/linux/$ID/gpg")" \
25 | && echo "$pgpKey" | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
26 | && echo "deb [arch=$dpkgArch signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$ID $VERSION_CODENAME stable" | \
27 | tee /etc/apt/sources.list.d/docker.list > /dev/null \
28 | && apt-get update \
29 | && apt-get -y install --no-install-recommends \
30 | docker-ce-cli \
31 | docker-buildx-plugin \
32 | docker-compose-plugin \
33 | "$(test "$dpkgArch" = "amd64" && echo docker-scan-plugin)" \
34 | && ln -s /usr/libexec/docker/cli-plugins/docker-compose \
35 | /usr/local/bin/docker-compose \
36 | ## Install hadolint
37 | && case "$dpkgArch" in \
38 | amd64) tarArch="x86_64" ;; \
39 | arm64) tarArch="arm64" ;; \
40 | *) echo "error: Architecture $dpkgArch unsupported"; exit 1 ;; \
41 | esac \
42 | && apiResponse="$(curl -sSL \
43 | https://api.github.com/repos/hadolint/hadolint/releases/latest)" \
44 | && downloadUrl="$(echo "$apiResponse" | grep \
45 | "browser_download_url.*Linux-$tarArch\"" | cut -d : -f 2,3 | tr -d \")" \
46 | && echo "$downloadUrl" | xargs curl -sSLo /usr/local/bin/hadolint \
47 | && chmod 755 /usr/local/bin/hadolint \
48 | ## Install code-server extensions
49 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
50 | --install-extension exiasr.hadolint \
51 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
52 | --install-extension ms-azuretools.vscode-containers \
53 | && code-server --extensions-dir "$CODE_BUILTIN_EXTENSIONS_DIR" \
54 | --install-extension timonwong.shellcheck \
55 | ## Enable shellcheck system-wide
56 | && ln -sf "$CODE_BUILTIN_EXTENSIONS_DIR"/timonwong.shellcheck-*/binaries/*/*/shellcheck \
57 | /usr/local/bin/shellcheck \
58 | ## Clean up
59 | && rm -rf /var/lib/apt/lists/* \
60 | "$HOME/.config" \
61 | "$HOME/.local"
62 |
63 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
64 | USER ${NB_USER}
65 |
66 | ENV HOME=/home/${NB_USER}
67 |
68 | WORKDIR ${HOME}
69 |
--------------------------------------------------------------------------------
/common/subtags/root/Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE
2 |
3 | FROM ${BUILD_ON_IMAGE}
4 |
5 | ARG BUILD_START
6 |
7 | ENV BUILD_DATE=${BUILD_START}
8 |
9 | USER root
10 |
--------------------------------------------------------------------------------
/geospatial/3.6.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:3.6.2
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | lbzip2 \
8 | libfftw3-dev \
9 | libgdal-dev \
10 | libgeos-dev \
11 | libgsl0-dev \
12 | libgl1-mesa-dev \
13 | libglu1-mesa-dev \
14 | libhdf4-alt-dev \
15 | libhdf5-dev \
16 | libjq-dev \
17 | liblwgeom-dev \
18 | #libpq-dev \
19 | libproj-dev \
20 | libprotobuf-dev \
21 | libnetcdf-dev \
22 | #libsqlite3-dev \
23 | #libssl-dev \
24 | libudunits2-dev \
25 | netcdf-bin \
26 | postgis \
27 | protobuf-compiler \
28 | sqlite3 \
29 | tk-dev
30 | #unixodbc-dev
31 |
32 | RUN install2.r --error \
33 | #RColorBrewer \
34 | RandomFields \
35 | RNetCDF \
36 | classInt \
37 | deldir \
38 | gstat \
39 | hdf5r \
40 | lidR \
41 | mapdata \
42 | maptools \
43 | mapview \
44 | ncdf4 \
45 | proj4 \
46 | raster \
47 | rgdal \
48 | rgeos \
49 | rlas \
50 | sf \
51 | sp \
52 | spacetime \
53 | spatstat \
54 | spdep \
55 | geoR \
56 | geosphere \
57 | ## from bioconductor
58 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
59 | ## Clean up
60 | && rm -rf /tmp/* \
61 | && rm -rf /var/lib/apt/lists/*
62 |
63 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
64 | USER ${NB_USER}
65 |
--------------------------------------------------------------------------------
/geospatial/3.6.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:3.6.3
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | lbzip2 \
8 | libfftw3-dev \
9 | libgdal-dev \
10 | libgeos-dev \
11 | libgsl0-dev \
12 | libgl1-mesa-dev \
13 | libglu1-mesa-dev \
14 | libhdf4-alt-dev \
15 | libhdf5-dev \
16 | libjq-dev \
17 | liblwgeom-dev \
18 | #libpq-dev \
19 | libproj-dev \
20 | libprotobuf-dev \
21 | libnetcdf-dev \
22 | #libsqlite3-dev \
23 | #libssl-dev \
24 | libudunits2-dev \
25 | netcdf-bin \
26 | postgis \
27 | protobuf-compiler \
28 | sqlite3 \
29 | tk-dev
30 | #unixodbc-dev
31 |
32 | RUN install2.r --error \
33 | #RColorBrewer \
34 | RandomFields \
35 | RNetCDF \
36 | classInt \
37 | deldir \
38 | gstat \
39 | hdf5r \
40 | lidR \
41 | mapdata \
42 | maptools \
43 | mapview \
44 | ncdf4 \
45 | proj4 \
46 | raster \
47 | rgdal \
48 | rgeos \
49 | rlas \
50 | sf \
51 | sp \
52 | spacetime \
53 | spatstat \
54 | spdep \
55 | geoR \
56 | geosphere \
57 | ## from bioconductor
58 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
59 | ## Clean up
60 | && rm -rf /tmp/* \
61 | && rm -rf /var/lib/apt/lists/*
62 |
63 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
64 | USER ${NB_USER}
65 |
--------------------------------------------------------------------------------
/geospatial/4.0.0.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.0.0
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | lbzip2 \
8 | libfftw3-dev \
9 | libgdal-dev \
10 | libgeos-dev \
11 | libgsl0-dev \
12 | libgl1-mesa-dev \
13 | libglu1-mesa-dev \
14 | libhdf4-alt-dev \
15 | libhdf5-dev \
16 | libjq-dev \
17 | liblwgeom-dev \
18 | #libpq-dev \
19 | libproj-dev \
20 | libprotobuf-dev \
21 | libnetcdf-dev \
22 | #libsqlite3-dev \
23 | #libssl-dev \
24 | libudunits2-dev \
25 | netcdf-bin \
26 | postgis \
27 | protobuf-compiler \
28 | sqlite3 \
29 | tk-dev \
30 | #unixodbc-dev
31 | && install2.r --error \
32 | #RColorBrewer \
33 | RandomFields \
34 | RNetCDF \
35 | classInt \
36 | deldir \
37 | gstat \
38 | hdf5r \
39 | lidR \
40 | mapdata \
41 | maptools \
42 | mapview \
43 | ncdf4 \
44 | proj4 \
45 | raster \
46 | rgdal \
47 | rgeos \
48 | rlas \
49 | sf \
50 | sp \
51 | spacetime \
52 | spatstat \
53 | spdep \
54 | geoR \
55 | geosphere \
56 | ## from bioconductor
57 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
58 | ## Clean up
59 | && rm -rf /tmp/* \
60 | && rm -rf /var/lib/apt/lists/*
61 |
62 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
63 | USER ${NB_USER}
64 |
--------------------------------------------------------------------------------
/geospatial/4.0.1.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.0.1
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | lbzip2 \
8 | libfftw3-dev \
9 | libgdal-dev \
10 | libgeos-dev \
11 | libgsl0-dev \
12 | libgl1-mesa-dev \
13 | libglu1-mesa-dev \
14 | libhdf4-alt-dev \
15 | libhdf5-dev \
16 | libjq-dev \
17 | liblwgeom-dev \
18 | #libpq-dev \
19 | libproj-dev \
20 | libprotobuf-dev \
21 | libnetcdf-dev \
22 | #libsqlite3-dev \
23 | #libssl-dev \
24 | libudunits2-dev \
25 | netcdf-bin \
26 | postgis \
27 | protobuf-compiler \
28 | sqlite3 \
29 | tk-dev \
30 | #unixodbc-dev
31 | && install2.r --error \
32 | #RColorBrewer \
33 | RandomFields \
34 | RNetCDF \
35 | classInt \
36 | deldir \
37 | gstat \
38 | hdf5r \
39 | lidR \
40 | mapdata \
41 | maptools \
42 | mapview \
43 | ncdf4 \
44 | proj4 \
45 | raster \
46 | rgdal \
47 | rgeos \
48 | rlas \
49 | sf \
50 | sp \
51 | spacetime \
52 | spatstat \
53 | spdep \
54 | geoR \
55 | geosphere \
56 | ## from bioconductor
57 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
58 | ## Clean up
59 | && rm -rf /tmp/* \
60 | && rm -rf /var/lib/apt/lists/*
61 |
62 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
63 | USER ${NB_USER}
64 |
--------------------------------------------------------------------------------
/geospatial/4.0.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.0.2
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | lbzip2 \
8 | libfftw3-dev \
9 | libgdal-dev \
10 | libgeos-dev \
11 | libgsl0-dev \
12 | libgl1-mesa-dev \
13 | libglu1-mesa-dev \
14 | libhdf4-alt-dev \
15 | libhdf5-dev \
16 | libjq-dev \
17 | liblwgeom-dev \
18 | #libpq-dev \
19 | libproj-dev \
20 | libprotobuf-dev \
21 | libnetcdf-dev \
22 | #libsqlite3-dev \
23 | #libssl-dev \
24 | libudunits2-dev \
25 | netcdf-bin \
26 | postgis \
27 | protobuf-compiler \
28 | sqlite3 \
29 | tk-dev \
30 | #unixodbc-dev
31 | && install2.r --error \
32 | #RColorBrewer \
33 | RandomFields \
34 | RNetCDF \
35 | classInt \
36 | deldir \
37 | gstat \
38 | hdf5r \
39 | lidR \
40 | mapdata \
41 | maptools \
42 | mapview \
43 | ncdf4 \
44 | proj4 \
45 | raster \
46 | rgdal \
47 | rgeos \
48 | rlas \
49 | sf \
50 | sp \
51 | spacetime \
52 | spatstat \
53 | spdep \
54 | geoR \
55 | geosphere \
56 | ## from bioconductor
57 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
58 | ## Clean up
59 | && rm -rf /tmp/* \
60 | && rm -rf /var/lib/apt/lists/*
61 |
62 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
63 | USER ${NB_USER}
64 |
--------------------------------------------------------------------------------
/geospatial/4.0.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.0.3
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | libfftw3-dev \
8 | libgdal-dev \
9 | libgeos-dev \
10 | libgsl0-dev \
11 | libgl1-mesa-dev \
12 | libglu1-mesa-dev \
13 | libhdf4-alt-dev \
14 | libhdf5-dev \
15 | libjq-dev \
16 | liblwgeom-dev \
17 | #libpq-dev \
18 | libproj-dev \
19 | libprotobuf-dev \
20 | libnetcdf-dev \
21 | #libsqlite3-dev \
22 | #libssl-dev \
23 | libudunits2-dev \
24 | netcdf-bin \
25 | postgis \
26 | protobuf-compiler \
27 | sqlite3 \
28 | tk-dev \
29 | #unixodbc-dev
30 | && install2.r --error \
31 | #RColorBrewer \
32 | RandomFields \
33 | RNetCDF \
34 | classInt \
35 | deldir \
36 | gstat \
37 | hdf5r \
38 | lidR \
39 | mapdata \
40 | maptools \
41 | mapview \
42 | ncdf4 \
43 | proj4 \
44 | raster \
45 | rgdal \
46 | rgeos \
47 | rlas \
48 | sf \
49 | sp \
50 | spacetime \
51 | spatstat \
52 | spdep \
53 | geoR \
54 | geosphere \
55 | ## from bioconductor
56 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
57 | ## Clean up
58 | && rm -rf /tmp/* \
59 | && rm -rf /var/lib/apt/lists/*
60 |
61 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
62 | USER ${NB_USER}
63 |
--------------------------------------------------------------------------------
/geospatial/4.0.4.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.0.4
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | libfftw3-dev \
8 | libgdal-dev \
9 | libgeos-dev \
10 | libgsl0-dev \
11 | libgl1-mesa-dev \
12 | libglu1-mesa-dev \
13 | libhdf4-alt-dev \
14 | libhdf5-dev \
15 | libjq-dev \
16 | liblwgeom-dev \
17 | #libpq-dev \
18 | libproj-dev \
19 | libprotobuf-dev \
20 | libnetcdf-dev \
21 | #libsqlite3-dev \
22 | #libssl-dev \
23 | libudunits2-dev \
24 | netcdf-bin \
25 | postgis \
26 | protobuf-compiler \
27 | sqlite3 \
28 | tk-dev \
29 | #unixodbc-dev
30 | && install2.r --error \
31 | #RColorBrewer \
32 | RandomFields \
33 | RNetCDF \
34 | classInt \
35 | deldir \
36 | gstat \
37 | hdf5r \
38 | lidR \
39 | mapdata \
40 | maptools \
41 | mapview \
42 | ncdf4 \
43 | proj4 \
44 | raster \
45 | rgdal \
46 | rgeos \
47 | rlas \
48 | sf \
49 | sp \
50 | spacetime \
51 | spatstat \
52 | spdep \
53 | geoR \
54 | geosphere \
55 | ## from bioconductor
56 | ## ‘rhdf5’ and ‘rhdf5filters’ have non-zero exit status on aarch64
57 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
58 | ## Clean up
59 | && rm -rf /tmp/* \
60 | && rm -rf /var/lib/apt/lists/*
61 |
62 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
63 | USER ${NB_USER}
64 |
--------------------------------------------------------------------------------
/geospatial/4.0.5.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.0.5
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get install -y --no-install-recommends \
7 | libfftw3-dev \
8 | libgdal-dev \
9 | libgeos-dev \
10 | libgsl0-dev \
11 | libgl1-mesa-dev \
12 | libglu1-mesa-dev \
13 | libhdf4-alt-dev \
14 | libhdf5-dev \
15 | libjq-dev \
16 | liblwgeom-dev \
17 | #libpq-dev \
18 | libproj-dev \
19 | libprotobuf-dev \
20 | libnetcdf-dev \
21 | #libsqlite3-dev \
22 | #libssl-dev \
23 | libudunits2-dev \
24 | netcdf-bin \
25 | postgis \
26 | protobuf-compiler \
27 | sqlite3 \
28 | tk-dev \
29 | #unixodbc-dev
30 | && install2.r --error \
31 | #RColorBrewer \
32 | RandomFields \
33 | RNetCDF \
34 | classInt \
35 | deldir \
36 | gstat \
37 | hdf5r \
38 | lidR \
39 | mapdata \
40 | maptools \
41 | mapview \
42 | ncdf4 \
43 | proj4 \
44 | raster \
45 | rgdal \
46 | rgeos \
47 | rlas \
48 | sf \
49 | sp \
50 | spacetime \
51 | spatstat \
52 | spdep \
53 | geoR \
54 | geosphere \
55 | ## from bioconductor
56 | ## ‘rhdf5’ and ‘rhdf5filters’ have non-zero exit status on aarch64
57 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
58 | ## Clean up
59 | && rm -rf /tmp/* \
60 | && rm -rf /var/lib/apt/lists/*
61 |
62 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
63 | USER ${NB_USER}
64 |
--------------------------------------------------------------------------------
/geospatial/4.1.0.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.1.0
2 |
3 | ARG DEBIAN_FRONTEND=noninteractive
4 |
5 | USER root
6 |
7 | RUN apt-get update \
8 | && apt-get install -y --no-install-recommends \
9 | libfftw3-dev \
10 | libgdal-dev \
11 | libgeos-dev \
12 | libgsl0-dev \
13 | libgl1-mesa-dev \
14 | libglu1-mesa-dev \
15 | libhdf4-alt-dev \
16 | libhdf5-dev \
17 | libjq-dev \
18 | liblwgeom-dev \
19 | #libpq-dev \
20 | libproj-dev \
21 | libprotobuf-dev \
22 | libnetcdf-dev \
23 | #libsqlite3-dev \
24 | #libssl-dev \
25 | libudunits2-dev \
26 | netcdf-bin \
27 | postgis \
28 | protobuf-compiler \
29 | sqlite3 \
30 | tk-dev \
31 | #unixodbc-dev
32 | && install2.r --error \
33 | #RColorBrewer \
34 | RandomFields \
35 | RNetCDF \
36 | classInt \
37 | deldir \
38 | gstat \
39 | hdf5r \
40 | lidR \
41 | mapdata \
42 | maptools \
43 | mapview \
44 | ncdf4 \
45 | proj4 \
46 | raster \
47 | rgdal \
48 | rgeos \
49 | rlas \
50 | sf \
51 | sp \
52 | spacetime \
53 | spatstat \
54 | spdep \
55 | geoR \
56 | geosphere \
57 | ## from bioconductor
58 | ## ‘rhdf5’ and ‘rhdf5filters’ have non-zero exit status on aarch64
59 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
60 | ## Clean up
61 | && rm -rf /tmp/* \
62 | && rm -rf /var/lib/apt/lists/*
63 |
64 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
65 | USER ${NB_USER}
66 |
--------------------------------------------------------------------------------
/geospatial/4.1.1.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.1.1
2 |
3 | ARG DEBIAN_FRONTEND=noninteractive
4 |
5 | USER root
6 |
7 | RUN apt-get update \
8 | && apt-get install -y --no-install-recommends \
9 | libfftw3-dev \
10 | libgdal-dev \
11 | libgeos-dev \
12 | libgsl0-dev \
13 | libgl1-mesa-dev \
14 | libglu1-mesa-dev \
15 | libhdf4-alt-dev \
16 | libhdf5-dev \
17 | libjq-dev \
18 | #libpq-dev \
19 | libproj-dev \
20 | libprotobuf-dev \
21 | libnetcdf-dev \
22 | #libsqlite3-dev \
23 | #libssl-dev \
24 | libudunits2-dev \
25 | netcdf-bin \
26 | postgis \
27 | protobuf-compiler \
28 | sqlite3 \
29 | tk-dev \
30 | #unixodbc-dev
31 | && install2.r --error \
32 | #RColorBrewer \
33 | RandomFields \
34 | RNetCDF \
35 | classInt \
36 | deldir \
37 | gstat \
38 | hdf5r \
39 | lidR \
40 | mapdata \
41 | maptools \
42 | mapview \
43 | ncdf4 \
44 | proj4 \
45 | raster \
46 | rgdal \
47 | rgeos \
48 | rlas \
49 | sf \
50 | sp \
51 | spacetime \
52 | spatstat \
53 | spdep \
54 | geoR \
55 | geosphere \
56 | ## from bioconductor
57 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
58 | ## Clean up
59 | && rm -rf /tmp/* \
60 | && rm -rf /var/lib/apt/lists/*
61 |
62 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
63 | USER ${NB_USER}
64 |
--------------------------------------------------------------------------------
/geospatial/4.1.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.1.2
2 |
3 | ARG NCPUS=1
4 |
5 | ARG DEBIAN_FRONTEND=noninteractive
6 |
7 | USER root
8 |
9 | RUN apt-get update \
10 | && apt-get install -y --no-install-recommends \
11 | gdal-bin \
12 | libfftw3-dev \
13 | libgdal-dev \
14 | libgeos-dev \
15 | libgsl0-dev \
16 | #libgl1-mesa-dev \
17 | #libglu1-mesa-dev \
18 | libhdf4-alt-dev \
19 | libhdf5-dev \
20 | libjq-dev \
21 | #libpq-dev \
22 | libproj-dev \
23 | libprotobuf-dev \
24 | libnetcdf-dev \
25 | #libsqlite3-dev \
26 | #libssl-dev \
27 | libudunits2-dev \
28 | netcdf-bin \
29 | postgis \
30 | protobuf-compiler \
31 | sqlite3 \
32 | tk-dev \
33 | #unixodbc-dev
34 | && install2.r --error --skipinstalled -n $NCPUS \
35 | #RColorBrewer \
36 | RandomFields \
37 | RNetCDF \
38 | classInt \
39 | deldir \
40 | gstat \
41 | hdf5r \
42 | lidR \
43 | mapdata \
44 | maptools \
45 | mapview \
46 | ncdf4 \
47 | proj4 \
48 | raster \
49 | rgdal \
50 | rgeos \
51 | rlas \
52 | sf \
53 | sp \
54 | spacetime \
55 | spatstat \
56 | spatialreg \
57 | spdep \
58 | stars \
59 | terra \
60 | tidync \
61 | tmap \
62 | geoR \
63 | geosphere \
64 | ## from bioconductor
65 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
66 | ## Clean up
67 | && rm -rf /tmp/* \
68 | && rm -rf /var/lib/apt/lists/*
69 |
70 | ## Install wgrib2 for NOAA's NOMADS / rNOMADS forecast files
71 | #RUN cd /opt \
72 | # && wget https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz \
73 | # && tar -xvf wgrib2.tgz \
74 | # && rm -rf wgrib2.tgz \
75 | # && cd grib2 \
76 | # ## arm64: Needs to be compiled with USE_NETCDF4=1, USE_JASPER=0
77 | # ## https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/index.html
78 | # && if [ $(dpkg --print-architecture) = "arm64" ]; then \
79 | # sed -i 's/^USE_NETCDF4=0/USE_NETCDF4=1/' makefile; \
80 | # sed -i 's/^USE_NETCDF3=1/USE_NETCDF3=0/' makefile; \
81 | # sed -i 's/^USE_JASPER=1/USE_JASPER=0/' makefile; \
82 | # NETCDF4_SRC=`sed -n 's/ netcdf4src=\(.*\)/\1/p' makefile`; \
83 | # wget ftp://ftp.unidata.ucar.edu/pub/netcdf/$NETCDF4_SRC; \
84 | # HDF5_SRC=`sed -n 's/ hdf5src:=\(.*\)/\1/p' makefile`; \
85 | # HDF5_MAJ_MIN_PAT=`echo $HDF5_SRC | \
86 | # sed -n 's/hdf5-\([[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
87 | # HDF5_MAJ_MIN=`echo $HDF5_MAJ_MIN_PAT | \
88 | # sed -n 's/\([[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
89 | # wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$HDF5_MAJ_MIN/hdf5-$HDF5_MAJ_MIN_PAT/src/$HDF5_SRC; \
90 | # fi \
91 | # && CC=gcc FC=gfortran make \
92 | # && ln -s /opt/grib2/wgrib2/wgrib2 /usr/local/bin/wgrib2
93 |
94 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
95 | USER ${NB_USER}
96 |
--------------------------------------------------------------------------------
/geospatial/4.1.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:4.1.3
2 |
3 | ARG NCPUS=1
4 |
5 | ARG DEBIAN_FRONTEND=noninteractive
6 |
7 | USER root
8 |
9 | RUN apt-get update \
10 | && apt-get install -y --no-install-recommends \
11 | gdal-bin \
12 | libfftw3-dev \
13 | libgdal-dev \
14 | libgeos-dev \
15 | libgsl0-dev \
16 | #libgl1-mesa-dev \
17 | #libglu1-mesa-dev \
18 | libhdf4-alt-dev \
19 | libhdf5-dev \
20 | libjq-dev \
21 | #libpq-dev \
22 | libproj-dev \
23 | libprotobuf-dev \
24 | libnetcdf-dev \
25 | #libsqlite3-dev \
26 | #libssl-dev \
27 | libudunits2-dev \
28 | netcdf-bin \
29 | postgis \
30 | protobuf-compiler \
31 | sqlite3 \
32 | tk-dev \
33 | #unixodbc-dev
34 | && install2.r --error --skipinstalled -n $NCPUS \
35 | #RColorBrewer \
36 | RandomFields \
37 | RNetCDF \
38 | classInt \
39 | deldir \
40 | gstat \
41 | hdf5r \
42 | lidR \
43 | mapdata \
44 | maptools \
45 | mapview \
46 | ncdf4 \
47 | proj4 \
48 | raster \
49 | rgdal \
50 | rgeos \
51 | rlas \
52 | sf \
53 | sp \
54 | spacetime \
55 | spatstat \
56 | spatialreg \
57 | spdep \
58 | stars \
59 | terra \
60 | tidync \
61 | tmap \
62 | geoR \
63 | geosphere \
64 | ## from bioconductor
65 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
66 | ## Clean up
67 | && rm -rf /tmp/* \
68 | && rm -rf /var/lib/apt/lists/*
69 |
70 | ## Install wgrib2 for NOAA's NOMADS / rNOMADS forecast files
71 | #RUN cd /opt \
72 | # && wget https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz \
73 | # && tar -xvf wgrib2.tgz \
74 | # && rm -rf wgrib2.tgz \
75 | # && cd grib2 \
76 | # ## arm64: Needs to be compiled with USE_NETCDF4=1, USE_JASPER=0
77 | # ## https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/index.html
78 | # && if [ $(dpkg --print-architecture) = "arm64" ]; then \
79 | # sed -i 's/^USE_NETCDF4=0/USE_NETCDF4=1/' makefile; \
80 | # sed -i 's/^USE_NETCDF3=1/USE_NETCDF3=0/' makefile; \
81 | # sed -i 's/^USE_JASPER=1/USE_JASPER=0/' makefile; \
82 | # NETCDF4_SRC=`sed -n 's/ netcdf4src=\(.*\)/\1/p' makefile`; \
83 | # wget ftp://ftp.unidata.ucar.edu/pub/netcdf/$NETCDF4_SRC; \
84 | # HDF5_SRC=`sed -n 's/ hdf5src:=\(.*\)/\1/p' makefile`; \
85 | # HDF5_MAJ_MIN_PAT=`echo $HDF5_SRC | \
86 | # sed -n 's/hdf5-\([[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
87 | # HDF5_MAJ_MIN=`echo $HDF5_MAJ_MIN_PAT | \
88 | # sed -n 's/\([[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
89 | # wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$HDF5_MAJ_MIN/hdf5-$HDF5_MAJ_MIN_PAT/src/$HDF5_SRC; \
90 | # fi \
91 | # && CC=gcc FC=gfortran make \
92 | # && ln -s /opt/grib2/wgrib2/wgrib2 /usr/local/bin/wgrib2
93 |
94 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
95 | USER ${NB_USER}
96 |
--------------------------------------------------------------------------------
/geospatial/4.2.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG R_VERSION=4.2.0
2 |
3 | FROM registry.gitlab.b-data.ch/jupyterlab/r/verse:${R_VERSION}
4 |
5 | ARG NCPUS=1
6 |
7 | ARG DEBIAN_FRONTEND=noninteractive
8 |
9 | USER root
10 |
11 | RUN apt-get update \
12 | && apt-get install -y --no-install-recommends \
13 | gdal-bin \
14 | libfftw3-dev \
15 | libgdal-dev \
16 | libgeos-dev \
17 | libgsl0-dev \
18 | #libgl1-mesa-dev \
19 | #libglu1-mesa-dev \
20 | libhdf4-alt-dev \
21 | libhdf5-dev \
22 | libjq-dev \
23 | #libpq-dev \
24 | libproj-dev \
25 | libprotobuf-dev \
26 | libnetcdf-dev \
27 | #libsqlite3-dev \
28 | #libssl-dev \
29 | libudunits2-dev \
30 | netcdf-bin \
31 | postgis \
32 | protobuf-compiler \
33 | sqlite3 \
34 | tk-dev \
35 | #unixodbc-dev
36 | && install2.r --error --skipinstalled -n $NCPUS \
37 | #RColorBrewer \
38 | RNetCDF \
39 | classInt \
40 | deldir \
41 | gstat \
42 | hdf5r \
43 | lidR \
44 | mapdata \
45 | maptools \
46 | mapview \
47 | ncdf4 \
48 | proj4 \
49 | raster \
50 | rgdal \
51 | rgeos \
52 | rlas \
53 | sf \
54 | sp \
55 | spacetime \
56 | spatstat \
57 | spatialreg \
58 | spdep \
59 | stars \
60 | terra \
61 | tidync \
62 | tmap \
63 | geosphere \
64 | ## Archived on 2022-05-04 as check problems were not corrected in time.
65 | && Rscript -e "devtools::install_version('RandomFields', version = '3.3.14')" \
66 | ## Archived on 2022-05-04 as requires archived package 'RandomFields'.
67 | && Rscript -e "devtools::install_version('geoR', version = '1.8-1')" \
68 | ## from bioconductor
69 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
70 | ## Clean up
71 | && rm -rf /tmp/* \
72 | && rm -rf /var/lib/apt/lists/*
73 |
74 | ## Install wgrib2 for NOAA's NOMADS / rNOMADS forecast files
75 | #RUN cd /opt \
76 | # && wget https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz \
77 | # && tar -xvf wgrib2.tgz \
78 | # && rm -rf wgrib2.tgz \
79 | # && cd grib2 \
80 | # ## arm64: Needs to be compiled with USE_NETCDF4=1, USE_JASPER=0
81 | # ## https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/index.html
82 | # && if [ $(dpkg --print-architecture) = "arm64" ]; then \
83 | # sed -i 's/^USE_NETCDF4=0/USE_NETCDF4=1/' makefile; \
84 | # sed -i 's/^USE_NETCDF3=1/USE_NETCDF3=0/' makefile; \
85 | # sed -i 's/^USE_JASPER=1/USE_JASPER=0/' makefile; \
86 | # NETCDF4_SRC=`sed -n 's/ netcdf4src=\(.*\)/\1/p' makefile`; \
87 | # wget ftp://ftp.unidata.ucar.edu/pub/netcdf/$NETCDF4_SRC; \
88 | # HDF5_SRC=`sed -n 's/ hdf5src:=\(.*\)/\1/p' makefile`; \
89 | # HDF5_MAJ_MIN_PAT=`echo $HDF5_SRC | \
90 | # sed -n 's/hdf5-\([[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
91 | # HDF5_MAJ_MIN=`echo $HDF5_MAJ_MIN_PAT | \
92 | # sed -n 's/\([[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
93 | # wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$HDF5_MAJ_MIN/hdf5-$HDF5_MAJ_MIN_PAT/src/$HDF5_SRC; \
94 | # fi \
95 | # && CC=gcc FC=gfortran make \
96 | # && ln -s /opt/grib2/wgrib2/wgrib2 /usr/local/bin/wgrib2
97 |
98 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
99 | USER ${NB_USER}
100 |
--------------------------------------------------------------------------------
/geospatial/4.2.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=registry.gitlab.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.2.1
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | USER root
11 |
12 | RUN apt-get update \
13 | && apt-get install -y --no-install-recommends \
14 | gdal-bin \
15 | libfftw3-dev \
16 | libgdal-dev \
17 | libgeos-dev \
18 | libgsl0-dev \
19 | #libgl1-mesa-dev \
20 | #libglu1-mesa-dev \
21 | libhdf4-alt-dev \
22 | libhdf5-dev \
23 | libjq-dev \
24 | #libpq-dev \
25 | libproj-dev \
26 | libprotobuf-dev \
27 | libnetcdf-dev \
28 | #libsqlite3-dev \
29 | #libssl-dev \
30 | libudunits2-dev \
31 | netcdf-bin \
32 | postgis \
33 | protobuf-compiler \
34 | sqlite3 \
35 | tk-dev \
36 | #unixodbc-dev
37 | && install2.r --error --skipinstalled -n $NCPUS \
38 | #RColorBrewer \
39 | RNetCDF \
40 | classInt \
41 | deldir \
42 | gstat \
43 | hdf5r \
44 | lidR \
45 | mapdata \
46 | maptools \
47 | mapview \
48 | ncdf4 \
49 | proj4 \
50 | raster \
51 | rgdal \
52 | rgeos \
53 | rlas \
54 | sf \
55 | sp \
56 | spacetime \
57 | spatstat \
58 | spatialreg \
59 | spdep \
60 | stars \
61 | terra \
62 | tidync \
63 | tmap \
64 | geoR \
65 | geosphere \
66 | ## from bioconductor
67 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
68 | ## Clean up
69 | && rm -rf /tmp/* \
70 | && rm -rf /var/lib/apt/lists/*
71 |
72 | ## Install wgrib2 for NOAA's NOMADS / rNOMADS forecast files
73 | #RUN cd /opt \
74 | # && wget https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz \
75 | # && tar -xvf wgrib2.tgz \
76 | # && rm -rf wgrib2.tgz \
77 | # && cd grib2 \
78 | # ## arm64: Needs to be compiled with USE_NETCDF4=1, USE_JASPER=0
79 | # ## https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/index.html
80 | # && if [ $(dpkg --print-architecture) = "arm64" ]; then \
81 | # sed -i 's/^USE_NETCDF4=0/USE_NETCDF4=1/' makefile; \
82 | # sed -i 's/^USE_NETCDF3=1/USE_NETCDF3=0/' makefile; \
83 | # sed -i 's/^USE_JASPER=1/USE_JASPER=0/' makefile; \
84 | # NETCDF4_SRC=`sed -n 's/ netcdf4src=\(.*\)/\1/p' makefile`; \
85 | # wget ftp://ftp.unidata.ucar.edu/pub/netcdf/$NETCDF4_SRC; \
86 | # HDF5_SRC=`sed -n 's/ hdf5src:=\(.*\)/\1/p' makefile`; \
87 | # HDF5_MAJ_MIN_PAT=`echo $HDF5_SRC | \
88 | # sed -n 's/hdf5-\([[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
89 | # HDF5_MAJ_MIN=`echo $HDF5_MAJ_MIN_PAT | \
90 | # sed -n 's/\([[:digit:]]\+\.[[:digit:]]\+\).*/\1/p'`; \
91 | # wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$HDF5_MAJ_MIN/hdf5-$HDF5_MAJ_MIN_PAT/src/$HDF5_SRC; \
92 | # fi \
93 | # && CC=gcc FC=gfortran make \
94 | # && ln -s /opt/grib2/wgrib2/wgrib2 /usr/local/bin/wgrib2
95 |
96 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
97 | USER ${NB_USER}
98 |
--------------------------------------------------------------------------------
/geospatial/4.2.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.2.2
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | netcdf-bin \
37 | postgis \
38 | protobuf-compiler \
39 | sqlite3 \
40 | tk-dev \
41 | #unixodbc-dev
42 | ## sf: Installation fails on Debian 11 (bullseye) for v1.0-10
43 | ## https://github.com/r-spatial/sf/issues/2118
44 | && R -e "devtools::install_version('sf', version = '1.0-9')" \
45 | && install2.r --error --skipinstalled -n $NCPUS \
46 | #RColorBrewer \
47 | RNetCDF \
48 | classInt \
49 | deldir \
50 | gstat \
51 | hdf5r \
52 | lidR \
53 | mapdata \
54 | maptools \
55 | mapview \
56 | ncdf4 \
57 | proj4 \
58 | raster \
59 | rgdal \
60 | rgeos \
61 | rlas \
62 | sp \
63 | spacetime \
64 | spatstat \
65 | spatialreg \
66 | spdep \
67 | stars \
68 | terra \
69 | tidync \
70 | tmap \
71 | geoR \
72 | geosphere \
73 | ## from bioconductor
74 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/geospatial/4.2.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.2.3
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | netcdf-bin \
37 | postgis \
38 | protobuf-compiler \
39 | sqlite3 \
40 | tk-dev \
41 | #unixodbc-dev
42 | && install2.r --error --skipinstalled -n $NCPUS \
43 | #RColorBrewer \
44 | RNetCDF \
45 | classInt \
46 | deldir \
47 | gstat \
48 | hdf5r \
49 | lidR \
50 | mapdata \
51 | maptools \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rgdal \
57 | rgeos \
58 | rlas \
59 | sf \
60 | sp \
61 | spacetime \
62 | spatstat \
63 | spatialreg \
64 | spdep \
65 | stars \
66 | terra \
67 | tidync \
68 | tmap \
69 | geoR \
70 | geosphere \
71 | ## from bioconductor
72 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
73 | ## Clean up
74 | && rm -rf /tmp/* \
75 | && rm -rf /var/lib/apt/lists/*
76 |
77 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
78 | USER ${NB_USER}
79 |
--------------------------------------------------------------------------------
/geospatial/4.3.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.3.0
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | netcdf-bin \
37 | postgis \
38 | protobuf-compiler \
39 | sqlite3 \
40 | tk-dev \
41 | #unixodbc-dev
42 | && install2.r --error --skipinstalled -n $NCPUS \
43 | #RColorBrewer \
44 | RNetCDF \
45 | classInt \
46 | deldir \
47 | gstat \
48 | hdf5r \
49 | lidR \
50 | mapdata \
51 | maptools \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rgdal \
57 | rgeos \
58 | rlas \
59 | sf \
60 | sp \
61 | spacetime \
62 | spatstat \
63 | spatialreg \
64 | spdep \
65 | stars \
66 | terra \
67 | tidync \
68 | tmap \
69 | geoR \
70 | geosphere \
71 | ## from bioconductor
72 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
73 | ## Clean up
74 | && rm -rf /tmp/* \
75 | && rm -rf /var/lib/apt/lists/*
76 |
77 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
78 | USER ${NB_USER}
79 |
--------------------------------------------------------------------------------
/geospatial/4.3.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.3.1
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from PPM
73 | && strip $(R RHOME)/site-library/*/libs/*.so \
74 | ## Clean up
75 | && rm -rf /tmp/* \
76 | && rm -rf /var/lib/apt/lists/*
77 |
78 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
79 | USER ${NB_USER}
80 |
--------------------------------------------------------------------------------
/geospatial/4.3.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.3.2
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from PPM
73 | && strip $(R RHOME)/site-library/*/libs/*.so \
74 | ## Clean up
75 | && rm -rf /tmp/* \
76 | && rm -rf /var/lib/apt/lists/*
77 |
78 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
79 | USER ${NB_USER}
80 |
--------------------------------------------------------------------------------
/geospatial/4.3.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.3.3
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from PPPM
73 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
74 | && strip ${RLS}/*/libs/*.so \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/geospatial/4.4.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.4.0
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | #libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from P3M
73 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
74 | && strip ${RLS}/*/libs/*.so \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/geospatial/4.4.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.4.1
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | #libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from P3M
73 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
74 | && strip ${RLS}/*/libs/*.so \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/geospatial/4.4.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.4.2
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | #libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from P3M
73 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
74 | && strip ${RLS}/*/libs/*.so \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/geospatial/4.4.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION=4.4.3
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | #libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from P3M
73 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
74 | && strip ${RLS}/*/libs/*.so \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/geospatial/latest.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/verse
2 | ARG R_VERSION
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | libfftw3-dev \
21 | libgdal-dev \
22 | libgeos-dev \
23 | libgsl0-dev \
24 | #libgl1-mesa-dev \
25 | #libglu1-mesa-dev \
26 | libhdf4-alt-dev \
27 | #libhdf5-dev \
28 | libjq-dev \
29 | #libpq-dev \
30 | libproj-dev \
31 | libprotobuf-dev \
32 | libnetcdf-dev \
33 | #libsqlite3-dev \
34 | #libssl-dev \
35 | libudunits2-dev \
36 | nco \
37 | netcdf-bin \
38 | postgis \
39 | protobuf-compiler \
40 | sqlite3 \
41 | tk-dev \
42 | #unixodbc-dev
43 | && install2.r --error --skipinstalled -n $NCPUS \
44 | #RColorBrewer \
45 | RNetCDF \
46 | classInt \
47 | deldir \
48 | gstat \
49 | hdf5r \
50 | lidR \
51 | mapdata \
52 | mapview \
53 | ncdf4 \
54 | proj4 \
55 | raster \
56 | rlas \
57 | sf \
58 | sfarrow \
59 | sp \
60 | spacetime \
61 | spatstat \
62 | spatialreg \
63 | spdep \
64 | stars \
65 | terra \
66 | tidync \
67 | tmap \
68 | geoR \
69 | geosphere \
70 | ## from bioconductor
71 | && R -e "BiocManager::install('rhdf5', update = FALSE, ask = FALSE)" \
72 | ## Strip libraries of binary packages installed from P3M
73 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
74 | && strip ${RLS}/*/libs/*.so \
75 | ## Clean up
76 | && rm -rf /tmp/* \
77 | && rm -rf /var/lib/apt/lists/*
78 |
79 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
80 | USER ${NB_USER}
81 |
--------------------------------------------------------------------------------
/qgisprocess/conf/user/var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini:
--------------------------------------------------------------------------------
1 | [qgis]
2 | customEnvVars="append|PYTHONPATH=:/usr/lib/python3/dist-packages"
3 | customEnvVarsUse=true
4 |
5 | [UI]
6 | UITheme=Night Mapping
7 |
--------------------------------------------------------------------------------
/qgisprocess/scripts/usr/local/bin/before-notebook.d/70-qgis.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Copyright (c) 2023 b-data GmbH.
3 | # Distributed under the terms of the MIT License.
4 |
5 | set -e
6 |
7 | if [ "$(id -u)" == 0 ] ; then
8 | # Put inital QGIS settings in place
9 | run_user_group mkdir -p "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/QGIS"
10 | if [[ ! -f "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini" ]]; then
11 | run_user_group cp -a --no-preserve=ownership \
12 | /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini \
13 | "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini"
14 | fi
15 |
16 | run_user_group mkdir -p "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/python/plugins"
17 |
18 | # Copy plugin 'Processing Saga NextGen Provider'
19 | run_user_group rm -rf "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_saga_nextgen"
20 | run_user_group cp -a --no-preserve=ownership \
21 | /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_saga_nextgen \
22 | "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/python/plugins"
23 |
24 | # Copy plugin 'OrfeoToolbox Provider'
25 | if [[ ! -d "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/python/plugins/orfeoToolbox_provider" ]]; then
26 | if [[ -d /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/python/plugins/orfeoToolbox_provider ]]; then
27 | run_user_group cp -a --no-preserve=ownership \
28 | /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/python/plugins/orfeoToolbox_provider \
29 | "/home/$NB_USER${DOMAIN:+@$DOMAIN}/.local/share/QGIS/QGIS3/profiles/default/python/plugins"
30 | fi
31 | fi
32 | else
33 | # Put inital QGIS settings in place
34 | mkdir -p "$HOME/.local/share/QGIS/QGIS3/profiles/default/QGIS"
35 | if [[ ! -f "$HOME/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini" ]]; then
36 | cp -a /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini \
37 | "$HOME/.local/share/QGIS/QGIS3/profiles/default/QGIS/QGIS3.ini"
38 | fi
39 |
40 | mkdir -p "$HOME/.local/share/QGIS/QGIS3/profiles/default/python/plugins"
41 |
42 | # Copy plugin 'Processing Saga NextGen Provider'
43 | rm -rf "$HOME/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_saga_nextgen"
44 | cp -a /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/python/plugins/processing_saga_nextgen \
45 | "$HOME/.local/share/QGIS/QGIS3/profiles/default/python/plugins"
46 |
47 | # Copy plugin 'OrfeoToolbox Provider'
48 | if [[ ! -d "$HOME/.local/share/QGIS/QGIS3/profiles/default/python/plugins/orfeoToolbox_provider" ]]; then
49 | if [[ -d /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/python/plugins/orfeoToolbox_provider ]]; then
50 | cp -a /var/backups/skel/.local/share/QGIS/QGIS3/profiles/default/python/plugins/orfeoToolbox_provider \
51 | "$HOME/.local/share/QGIS/QGIS3/profiles/default/python/plugins"
52 | fi
53 | fi
54 | fi
55 |
--------------------------------------------------------------------------------
/tidyverse/3.6.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:3.6.2
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libsqlite3-dev \
10 | libmariadbd-dev \
11 | libmariadbclient-dev \
12 | libpq-dev \
13 | libssh2-1-dev \
14 | unixodbc-dev \
15 | libsasl2-dev \
16 | && install2.r --error \
17 | --deps TRUE \
18 | tidyverse \
19 | dplyr \
20 | devtools \
21 | formatR \
22 | #remotes \
23 | selectr \
24 | caTools \
25 | BiocManager \
26 | ## Clean up
27 | && rm -rf /tmp/* \
28 | && rm -rf /var/lib/apt/lists/*
29 |
30 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
31 | USER ${NB_USER}
32 |
--------------------------------------------------------------------------------
/tidyverse/3.6.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:3.6.3
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libsqlite3-dev \
10 | libmariadbd-dev \
11 | libmariadbclient-dev \
12 | libpq-dev \
13 | libssh2-1-dev \
14 | unixodbc-dev \
15 | libsasl2-dev \
16 | && install2.r --error \
17 | --deps TRUE \
18 | tidyverse \
19 | dplyr \
20 | devtools \
21 | formatR \
22 | #remotes \
23 | selectr \
24 | caTools \
25 | BiocManager \
26 | ## Clean up
27 | && rm -rf /tmp/* \
28 | && rm -rf /var/lib/apt/lists/*
29 |
30 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
31 | USER ${NB_USER}
32 |
--------------------------------------------------------------------------------
/tidyverse/4.0.0.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.0.0
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libsqlite3-dev \
10 | libmariadbd-dev \
11 | libmariadbclient-dev \
12 | libpq-dev \
13 | libssh2-1-dev \
14 | unixodbc-dev \
15 | libsasl2-dev \
16 | && install2.r --error BiocManager \
17 | && install2.r --error \
18 | --deps TRUE \
19 | tidyverse \
20 | dplyr \
21 | devtools \
22 | formatR \
23 | #remotes \
24 | selectr \
25 | caTools \
26 | ## Clean up
27 | && rm -rf /tmp/* \
28 | && rm -rf /var/lib/apt/lists/*
29 |
30 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
31 | USER ${NB_USER}
32 |
--------------------------------------------------------------------------------
/tidyverse/4.0.1.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.0.1
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libsqlite3-dev \
10 | libmariadbd-dev \
11 | libmariadbclient-dev \
12 | libpq-dev \
13 | libssh2-1-dev \
14 | unixodbc-dev \
15 | libsasl2-dev \
16 | && install2.r --error BiocManager \
17 | && install2.r --error \
18 | --deps TRUE \
19 | tidyverse \
20 | dplyr \
21 | devtools \
22 | formatR \
23 | #remotes \
24 | selectr \
25 | caTools \
26 | ## Clean up
27 | && rm -rf /tmp/* \
28 | && rm -rf /var/lib/apt/lists/*
29 |
30 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
31 | USER ${NB_USER}
32 |
--------------------------------------------------------------------------------
/tidyverse/4.0.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.0.2
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libfribidi-dev \
10 | libharfbuzz-dev \
11 | libsqlite3-dev \
12 | libmariadbd-dev \
13 | libmariadbclient-dev \
14 | libpq-dev \
15 | libssh2-1-dev \
16 | unixodbc-dev \
17 | libsasl2-dev \
18 | libtiff-dev \
19 | && install2.r --error BiocManager \
20 | && install2.r --error \
21 | --deps TRUE \
22 | tidyverse \
23 | dplyr \
24 | devtools \
25 | formatR \
26 | #remotes \
27 | selectr \
28 | caTools \
29 | ## Clean up
30 | && rm -rf /tmp/* \
31 | && rm -rf /var/lib/apt/lists/*
32 |
33 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
34 | USER ${NB_USER}
35 |
--------------------------------------------------------------------------------
/tidyverse/4.0.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.0.3
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libfribidi-dev \
10 | libgit2-dev \
11 | libharfbuzz-dev \
12 | libsqlite3-dev \
13 | libmariadbd-dev \
14 | libmariadbclient-dev \
15 | libpq-dev \
16 | libssh2-1-dev \
17 | unixodbc-dev \
18 | libsasl2-dev \
19 | libtiff-dev \
20 | && install2.r --error BiocManager \
21 | && install2.r --error \
22 | --deps TRUE \
23 | tidyverse \
24 | dplyr \
25 | devtools \
26 | formatR \
27 | #remotes \
28 | selectr \
29 | caTools \
30 | ## Clean up
31 | && rm -rf /tmp/* \
32 | && rm -rf /var/lib/apt/lists/*
33 |
34 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
35 | USER ${NB_USER}
36 |
--------------------------------------------------------------------------------
/tidyverse/4.0.4.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.0.4
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libfribidi-dev \
10 | libgit2-dev \
11 | libharfbuzz-dev \
12 | libsqlite3-dev \
13 | libmariadbd-dev \
14 | libmariadbclient-dev \
15 | libpq-dev \
16 | libssh2-1-dev \
17 | unixodbc-dev \
18 | libsasl2-dev \
19 | libtiff-dev \
20 | ## Install patched version or RPostgreSQL
21 | ## Source: https://gitlab.b-data.ch/benz0li/rpostgresql
22 | && install2.r --error DBI \
23 | && curl -sSL https://gitlab.b-data.ch/benz0li/rpostgresql/-/package_files/6/download \
24 | -o RPostgreSQL_0.6-2.tar.gz \
25 | && R CMD INSTALL RPostgreSQL_0.6-2.tar.gz \
26 | && rm RPostgreSQL_0.6-2.tar.gz \
27 | ## Install other packages in regular fashion
28 | && install2.r --error BiocManager \
29 | && install2.r --error \
30 | --deps TRUE \
31 | --skipinstalled \
32 | tidyverse \
33 | dplyr \
34 | devtools \
35 | formatR \
36 | #remotes \
37 | selectr \
38 | caTools \
39 | ## Clean up
40 | && rm -rf /tmp/* \
41 | && rm -rf /var/lib/apt/lists/*
42 |
43 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
44 | USER ${NB_USER}
45 |
--------------------------------------------------------------------------------
/tidyverse/4.0.5.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.0.5
2 |
3 | USER root
4 |
5 | RUN apt-get update \
6 | && apt-get -y install --no-install-recommends \
7 | #libxml2-dev \
8 | libcairo2-dev \
9 | libfribidi-dev \
10 | libgit2-dev \
11 | libharfbuzz-dev \
12 | libsqlite3-dev \
13 | libmariadbd-dev \
14 | libmariadbclient-dev \
15 | libpq-dev \
16 | libssh2-1-dev \
17 | unixodbc-dev \
18 | libsasl2-dev \
19 | libtiff-dev \
20 | ## Install patched version or RPostgreSQL
21 | ## Source: https://gitlab.b-data.ch/benz0li/rpostgresql
22 | && install2.r --error DBI \
23 | && curl -sSL https://gitlab.b-data.ch/benz0li/rpostgresql/-/package_files/6/download \
24 | -o RPostgreSQL_0.6-2.tar.gz \
25 | && R CMD INSTALL RPostgreSQL_0.6-2.tar.gz \
26 | && rm RPostgreSQL_0.6-2.tar.gz \
27 | ## Install other packages in regular fashion
28 | && install2.r --error BiocManager \
29 | && install2.r --error \
30 | --deps TRUE \
31 | --skipinstalled \
32 | tidyverse \
33 | dplyr \
34 | devtools \
35 | formatR \
36 | #remotes \
37 | selectr \
38 | caTools \
39 | ## Clean up
40 | && rm -rf /tmp/* \
41 | && rm -rf /var/lib/apt/lists/*
42 |
43 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
44 | USER ${NB_USER}
45 |
--------------------------------------------------------------------------------
/tidyverse/4.1.0.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.1.0
2 |
3 | ARG DEBIAN_FRONTEND=noninteractive
4 |
5 | USER root
6 |
7 | RUN apt-get update \
8 | && apt-get -y install --no-install-recommends \
9 | #libxml2-dev \
10 | libcairo2-dev \
11 | libfribidi-dev \
12 | libgit2-dev \
13 | libharfbuzz-dev \
14 | libsqlite3-dev \
15 | libmariadbd-dev \
16 | libmariadbclient-dev \
17 | libpq-dev \
18 | libssh2-1-dev \
19 | unixodbc-dev \
20 | libsasl2-dev \
21 | libtiff-dev \
22 | ## Install patched version or RPostgreSQL
23 | ## Source: https://gitlab.b-data.ch/benz0li/rpostgresql
24 | && install2.r --error DBI \
25 | && curl -sSL https://gitlab.b-data.ch/benz0li/rpostgresql/-/package_files/6/download \
26 | -o RPostgreSQL_0.6-2.tar.gz \
27 | && R CMD INSTALL RPostgreSQL_0.6-2.tar.gz \
28 | && rm RPostgreSQL_0.6-2.tar.gz \
29 | ## Install other packages in regular fashion
30 | && install2.r --error BiocManager \
31 | && install2.r --error \
32 | --deps TRUE \
33 | --skipinstalled \
34 | tidyverse \
35 | dplyr \
36 | devtools \
37 | formatR \
38 | #remotes \
39 | selectr \
40 | caTools \
41 | ## Clean up
42 | && rm -rf /tmp/* \
43 | && rm -rf /var/lib/apt/lists/*
44 |
45 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
46 | USER ${NB_USER}
47 |
--------------------------------------------------------------------------------
/tidyverse/4.1.1.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.1.1
2 |
3 | ARG DEBIAN_FRONTEND=noninteractive
4 |
5 | USER root
6 |
7 | RUN apt-get update \
8 | && apt-get -y install --no-install-recommends \
9 | #libxml2-dev \
10 | #libcairo2-dev \
11 | libfribidi-dev \
12 | libgit2-dev \
13 | libharfbuzz-dev \
14 | libsqlite3-dev \
15 | libmariadbd-dev \
16 | libpq-dev \
17 | libssh2-1-dev \
18 | unixodbc-dev \
19 | libsasl2-dev \
20 | libtiff-dev \
21 | && install2.r --error BiocManager \
22 | && install2.r --error \
23 | --deps TRUE \
24 | --skipinstalled \
25 | tidyverse \
26 | dplyr \
27 | devtools \
28 | formatR \
29 | #remotes \
30 | selectr \
31 | caTools \
32 | ## Clean up
33 | && rm -rf /tmp/* \
34 | && rm -rf /var/lib/apt/lists/*
35 |
36 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
37 | USER ${NB_USER}
38 |
--------------------------------------------------------------------------------
/tidyverse/4.1.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.1.2
2 |
3 | ARG NCPUS=1
4 |
5 | ARG DEBIAN_FRONTEND=noninteractive
6 |
7 | USER root
8 |
9 | RUN apt-get update \
10 | && apt-get -y install --no-install-recommends \
11 | cmake \
12 | #libxml2-dev \
13 | #libcairo2-dev \
14 | libfribidi-dev \
15 | libgit2-dev \
16 | libharfbuzz-dev \
17 | libmariadb-dev \
18 | libpq-dev \
19 | libsasl2-dev \
20 | libsqlite3-dev \
21 | libssh2-1-dev \
22 | libtiff-dev \
23 | libxtst6 \
24 | unixodbc-dev \
25 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
26 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
27 | tidyverse \
28 | dplyr \
29 | devtools \
30 | formatR \
31 | ## dplyr database backends
32 | && Rscript -e "devtools::install_version('duckdb', version = '0.3.1', Ncpus = Sys.getenv('NCPUS'))" \
33 | && install2.r --error --skipinstalled -n $NCPUS \
34 | arrow \
35 | fst \
36 | ## Clean up
37 | && rm -rf /tmp/* \
38 | && rm -rf /var/lib/apt/lists/*
39 |
40 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
41 | USER ${NB_USER}
42 |
--------------------------------------------------------------------------------
/tidyverse/4.1.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/r-ver:4.1.3
2 |
3 | ARG NCPUS=1
4 |
5 | ARG DEBIAN_FRONTEND=noninteractive
6 |
7 | USER root
8 |
9 | RUN apt-get update \
10 | && apt-get -y install --no-install-recommends \
11 | cmake \
12 | #libxml2-dev \
13 | #libcairo2-dev \
14 | libfribidi-dev \
15 | libgit2-dev \
16 | libharfbuzz-dev \
17 | libmariadb-dev \
18 | libpq-dev \
19 | libsasl2-dev \
20 | libsqlite3-dev \
21 | libssh2-1-dev \
22 | libtiff-dev \
23 | libxtst6 \
24 | unixodbc-dev \
25 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
26 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
27 | tidyverse \
28 | dplyr \
29 | devtools \
30 | formatR \
31 | ## dplyr database backends
32 | && if [ $(dpkg --print-architecture) = "arm64" ]; then \
33 | ## https://github.com/duckdb/duckdb/issues/3049
34 | cp -a $(R RHOME)/etc/Makeconf $(R RHOME)/etc/Makeconf.bak; \
35 | sed -i 's/fpic/fPIC/g' $(R RHOME)/etc/Makeconf; \
36 | install2.r --error --skipinstalled -n $NCPUS duckdb; \
37 | mv $(R RHOME)/etc/Makeconf.bak $(R RHOME)/etc/Makeconf; \
38 | else \
39 | install2.r --error --skipinstalled -n $NCPUS duckdb; \
40 | fi \
41 | && install2.r --error --skipinstalled -n $NCPUS \
42 | arrow \
43 | fst \
44 | ## Clean up
45 | && rm -rf /tmp/* \
46 | && rm -rf /var/lib/apt/lists/*
47 |
48 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
49 | USER ${NB_USER}
50 |
--------------------------------------------------------------------------------
/tidyverse/4.2.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG R_VERSION=4.2.0
2 |
3 | FROM registry.gitlab.b-data.ch/jupyterlab/r/base:${R_VERSION}
4 |
5 | ARG NCPUS=1
6 |
7 | ARG DEBIAN_FRONTEND=noninteractive
8 |
9 | USER root
10 |
11 | RUN apt-get update \
12 | && apt-get -y install --no-install-recommends \
13 | cmake \
14 | #libxml2-dev \
15 | #libcairo2-dev \
16 | libfribidi-dev \
17 | libgit2-dev \
18 | libharfbuzz-dev \
19 | libmariadb-dev \
20 | libpq-dev \
21 | libsasl2-dev \
22 | libsqlite3-dev \
23 | libssh2-1-dev \
24 | libtiff-dev \
25 | libxtst6 \
26 | unixodbc-dev \
27 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
28 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
29 | tidyverse \
30 | dplyr \
31 | devtools \
32 | formatR \
33 | ## dplyr database backends
34 | && install2.r --error --skipinstalled -n $NCPUS \
35 | arrow \
36 | duckdb \
37 | fst \
38 | ## Clean up
39 | && rm -rf /tmp/* \
40 | && rm -rf /var/lib/apt/lists/*
41 |
42 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
43 | USER ${NB_USER}
44 |
--------------------------------------------------------------------------------
/tidyverse/4.2.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=registry.gitlab.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.2.1
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | USER root
11 |
12 | RUN apt-get update \
13 | && apt-get -y install --no-install-recommends \
14 | cmake \
15 | #libxml2-dev \
16 | #libcairo2-dev \
17 | libfribidi-dev \
18 | libgit2-dev \
19 | libharfbuzz-dev \
20 | libmariadb-dev \
21 | libpq-dev \
22 | libsasl2-dev \
23 | libsqlite3-dev \
24 | libssh2-1-dev \
25 | libtiff-dev \
26 | libxtst6 \
27 | unixodbc-dev \
28 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
29 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
30 | tidyverse \
31 | dplyr \
32 | devtools \
33 | formatR \
34 | ## dplyr database backends
35 | && install2.r --error --skipinstalled -n $NCPUS \
36 | arrow \
37 | duckdb \
38 | fst \
39 | ## Clean up
40 | && rm -rf /tmp/* \
41 | && rm -rf /var/lib/apt/lists/*
42 |
43 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
44 | USER ${NB_USER}
45 |
--------------------------------------------------------------------------------
/tidyverse/4.2.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.2.2
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Clean up
49 | && rm -rf /tmp/* \
50 | && rm -rf /var/lib/apt/lists/*
51 |
52 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
53 | USER ${NB_USER}
54 |
--------------------------------------------------------------------------------
/tidyverse/4.2.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.2.3
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Clean up
49 | && rm -rf /tmp/* \
50 | && rm -rf /var/lib/apt/lists/*
51 |
52 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
53 | USER ${NB_USER}
54 |
--------------------------------------------------------------------------------
/tidyverse/4.3.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.3.0
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Clean up
49 | && rm -rf /tmp/* \
50 | && rm -rf /var/lib/apt/lists/*
51 |
52 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
53 | USER ${NB_USER}
54 |
--------------------------------------------------------------------------------
/tidyverse/4.3.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.3.1
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from PPM
49 | && strip $(R RHOME)/site-library/*/libs/*.so \
50 | ## Clean up
51 | && rm -rf /tmp/* \
52 | && rm -rf /var/lib/apt/lists/*
53 |
54 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
55 | USER ${NB_USER}
56 |
--------------------------------------------------------------------------------
/tidyverse/4.3.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.3.2
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from PPM
49 | && strip $(R RHOME)/site-library/*/libs/*.so \
50 | ## Clean up
51 | && rm -rf /tmp/* \
52 | && rm -rf /var/lib/apt/lists/*
53 |
54 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
55 | USER ${NB_USER}
56 |
--------------------------------------------------------------------------------
/tidyverse/4.3.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.3.3
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from PPPM
49 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
50 | && strip ${RLS}/*/libs/*.so \
51 | ## Clean up
52 | && rm -rf /tmp/* \
53 | && rm -rf /var/lib/apt/lists/*
54 |
55 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
56 | USER ${NB_USER}
57 |
--------------------------------------------------------------------------------
/tidyverse/4.4.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.4.0
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from P3M
49 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
50 | && strip ${RLS}/*/libs/*.so \
51 | ## Clean up
52 | && rm -rf /tmp/* \
53 | && rm -rf /var/lib/apt/lists/*
54 |
55 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
56 | USER ${NB_USER}
57 |
--------------------------------------------------------------------------------
/tidyverse/4.4.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.4.1
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | #libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from P3M
49 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
50 | && strip ${RLS}/*/libs/*.so \
51 | ## Clean up
52 | && rm -rf /tmp/* \
53 | && rm -rf /var/lib/apt/lists/*
54 |
55 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
56 | USER ${NB_USER}
57 |
--------------------------------------------------------------------------------
/tidyverse/4.4.2.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.4.2
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | #libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from P3M
49 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
50 | && strip ${RLS}/*/libs/*.so \
51 | ## Clean up
52 | && rm -rf /tmp/* \
53 | && rm -rf /var/lib/apt/lists/*
54 |
55 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
56 | USER ${NB_USER}
57 |
--------------------------------------------------------------------------------
/tidyverse/4.4.3.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION=4.4.3
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | #libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from P3M
49 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
50 | && strip ${RLS}/*/libs/*.so \
51 | ## Clean up
52 | && rm -rf /tmp/* \
53 | && rm -rf /var/lib/apt/lists/*
54 |
55 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
56 | USER ${NB_USER}
57 |
--------------------------------------------------------------------------------
/tidyverse/latest.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=glcr.b-data.ch/jupyterlab/r/base
2 | ARG R_VERSION
3 |
4 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
5 |
6 | ARG NCPUS=1
7 |
8 | ARG DEBIAN_FRONTEND=noninteractive
9 |
10 | ARG BUILD_ON_IMAGE
11 | ARG BUILD_START
12 |
13 | ENV PARENT_IMAGE=${BUILD_ON_IMAGE}:${R_VERSION} \
14 | BUILD_DATE=${BUILD_START}
15 |
16 | USER root
17 |
18 | RUN apt-get update \
19 | && apt-get -y install --no-install-recommends \
20 | cmake \
21 | default-libmysqlclient-dev \
22 | #libxml2-dev \
23 | libfribidi-dev \
24 | libgit2-dev \
25 | libharfbuzz-dev \
26 | libpq-dev \
27 | libsasl2-dev \
28 | libsqlite3-dev \
29 | libssh2-1-dev \
30 | #libtiff-dev \
31 | libxtst6 \
32 | unixodbc-dev \
33 | && install2.r --error --skipinstalled -n $NCPUS BiocManager \
34 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
35 | tidyverse \
36 | dplyr \
37 | devtools \
38 | formatR \
39 | ## dplyr database backends
40 | && install2.r --error --skipinstalled -n $NCPUS \
41 | arrow \
42 | duckdb \
43 | fst \
44 | ## Get rid of libharfbuzz-dev and its dependencies (incl. python3)
45 | && apt-get -y purge libharfbuzz-dev \
46 | && apt-get -y autoremove \
47 | && apt-get -y install --no-install-recommends libharfbuzz-icu0 \
48 | ## Strip libraries of binary packages installed from P3M
49 | && RLS=$(Rscript -e "cat(Sys.getenv('R_LIBS_SITE'))") \
50 | && strip ${RLS}/*/libs/*.so \
51 | ## Clean up
52 | && rm -rf /tmp/* \
53 | && rm -rf /var/lib/apt/lists/*
54 |
55 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
56 | USER ${NB_USER}
57 |
--------------------------------------------------------------------------------
/verse/3.6.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:3.6.2
2 |
3 | # Version-stable CTAN repo from the tlnet archive at texlive.info, used in the
4 | # TinyTeX installation: chosen as the frozen snapshot of the TeXLive release
5 | # shipped for the base Debian image of a given rocker/r-ver tag.
6 | # Debian buster => TeXLive 2018, frozen release snapshot 2019/02/27
7 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2019/02/27/tlnet}
8 | ENV CTAN_REPO=${CTAN_REPO}
9 |
10 | USER root
11 |
12 | ENV PATH=$PATH:/opt/TinyTeX/bin/x86_64-linux/ \
13 | HOME=/root
14 |
15 | WORKDIR ${HOME}
16 |
17 | ## Add LaTeX, rticles and bookdown support
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | ## for rJava
21 | default-jdk \
22 | ## Nice Google fonts
23 | fonts-roboto \
24 | ## used by some base R plots
25 | ghostscript \
26 | ## used to build rJava and other packages
27 | libbz2-dev \
28 | #libicu-dev \
29 | liblzma-dev \
30 | ## system dependency of hunspell (devtools)
31 | libhunspell-dev \
32 | ## system dependency of hadley/pkgdown
33 | libmagick++-dev \
34 | ## rdf, for redland / linked data
35 | librdf0-dev \
36 | ## for V8-based javascript wrappers
37 | libv8-dev \
38 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
39 | qpdf \
40 | ## For building PDF manuals
41 | texinfo \
42 | ## for git via ssh key
43 | #ssh \
44 | ## just because
45 | #less \
46 | #vim \
47 | ## parallelization
48 | #libzmq3-dev \
49 | libopenmpi-dev \
50 | && apt-get clean \
51 | && rm -rf /var/lib/apt/lists/* \
52 | ## Use tinytex for LaTeX installation
53 | #&& install2.r --error tinytex \
54 | ## Tell APT about the TeX Live installation
55 | ## by building a dummy package using equivs
56 | && apt-get install -y --no-install-recommends equivs \
57 | && cd /tmp \
58 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
59 | && equivs-build debian-* \
60 | && mv texlive-local*.deb texlive-local.deb \
61 | && dpkg -i texlive-local.deb \
62 | && apt-get -y purge equivs \
63 | && apt-get -y autoremove \
64 | ## Admin-based install of TinyTeX:
65 | && wget -qO- \
66 | "https://github.com/yihui/tinytex/raw/master/tools/install-unx.sh" | \
67 | sh -s - --admin --no-path \
68 | && mv ~/.TinyTeX /opt/TinyTeX \
69 | && if /opt/TinyTeX/bin/*/tex -v | grep -q 'TeX Live 2018'; then \
70 | ## Patch the Perl modules in the frozen TeX Live 2018 snapshot with the newer
71 | ## version available for the installer in tlnet/tlpkg/TeXLive, to include the
72 | ## fix described in https://github.com/yihui/tinytex/issues/77#issuecomment-466584510
73 | ## as discussed in https://www.preining.info/blog/2019/09/tex-services-at-texlive-info/#comments
74 | wget -P /tmp/ ${CTAN_REPO}/install-tl-unx.tar.gz \
75 | && tar -xzf /tmp/install-tl-unx.tar.gz -C /tmp/ \
76 | && cp -Tr /tmp/install-tl-*/tlpkg/TeXLive /opt/TinyTeX/tlpkg/TeXLive \
77 | && rm -r /tmp/install-tl-*; \
78 | fi \
79 | && /opt/TinyTeX/bin/*/tlmgr path add \
80 | && tlmgr install ae inconsolata listings metafont mfware parskip pdfcrop tex xcolor \
81 | && tlmgr path add \
82 | && Rscript -e "tinytex::r_texmf()" \
83 | && chown -R root:users /opt/TinyTeX \
84 | && chmod -R g+w /opt/TinyTeX \
85 | && chmod -R g+wx /opt/TinyTeX/bin \
86 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
87 | && install2.r --error PKI \
88 | ## And some nice R packages for publishing-related stuff
89 | && install2.r --error --deps TRUE \
90 | bookdown rticles rmdshower rJava \
91 | ## Install Node.js
92 | && curl -sL https://deb.nodesource.com/setup_12.x | bash \
93 | && DEPS="libpython-stdlib \
94 | libpython2-stdlib \
95 | libpython2.7-minimal \
96 | libpython2.7-stdlib \
97 | python \
98 | python-minimal \
99 | python2 python2-minimal \
100 | python2.7 \
101 | python2.7-minimal" \
102 | && apt-get install -y --no-install-recommends nodejs $DEPS \
103 | ## Install code-server extensions
104 | && cd /tmp \
105 | && curl -sL https://marketplace.visualstudio.com/_apis/public/gallery/publishers/James-Yu/vsextensions/latex-workshop/8.7.2/vspackage -o James-Yu.latex-workshop-8.7.2.vsix.gz \
106 | && gunzip James-Yu.latex-workshop-8.7.2.vsix.gz \
107 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.7.2.vsix \
108 | ## Needed to get LaTeX Workshop to work (Broken extension? https://github.com/cdr/code-server/issues/1187)
109 | && cd /opt/code-server/extensions/james-yu.latex-workshop-8.7.2 \
110 | && npm install \
111 | ## Clean up (Node.js)
112 | && rm -rf /tmp/* \
113 | && apt-get remove --purge -y nodejs $DEPS \
114 | && apt-get autoremove -y \
115 | && apt-get autoclean -y \
116 | && rm -rf /var/lib/apt/lists/* \
117 | /root/.cache \
118 | /root/.config \
119 | /root/.local \
120 | /root/.npm
121 | #
122 | ## Consider including:
123 | # - yihui/printr R package (when released to CRAN)
124 | # - libgsl0-dev (GSL math library dependencies)
125 |
126 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
127 | USER ${NB_USER}
128 |
129 | ENV HOME=/home/${NB_USER}
130 |
131 | WORKDIR ${HOME}
132 |
--------------------------------------------------------------------------------
/verse/4.0.0.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.0.0
2 |
3 | # Version-stable CTAN repo from the tlnet archive at texlive.info, used in the
4 | # TinyTeX installation: chosen as the frozen snapshot of the TeXLive release
5 | # shipped for the base Debian image of a given rocker/r-ver tag.
6 | # Debian buster => TeXLive 2018, frozen release snapshot 2019/02/27
7 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2019/02/27/tlnet}
8 | ENV CTAN_REPO=${CTAN_REPO}
9 |
10 | USER root
11 |
12 | ENV PATH=$PATH:/opt/TinyTeX/bin/x86_64-linux/ \
13 | HOME=/root
14 | COPY vsix/* /tmp/
15 |
16 | WORKDIR ${HOME}
17 |
18 | ## Add LaTeX, rticles and bookdown support
19 | RUN apt-get update \
20 | && apt-get install -y --no-install-recommends \
21 | ## for rJava
22 | default-jdk \
23 | ## Nice Google fonts
24 | fonts-roboto \
25 | ## used by some base R plots
26 | ghostscript \
27 | ## used to build rJava and other packages
28 | libbz2-dev \
29 | libicu-dev \
30 | liblzma-dev \
31 | libpcre2-dev \
32 | ## system dependency of hunspell (devtools)
33 | libhunspell-dev \
34 | ## system dependency of hadley/pkgdown
35 | libmagick++-dev \
36 | ## rdf, for redland / linked data
37 | librdf0-dev \
38 | ## for V8-based javascript wrappers
39 | libv8-dev \
40 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
41 | qpdf \
42 | ## For building PDF manuals
43 | texinfo \
44 | ## for git via ssh key
45 | #ssh \
46 | ## just because
47 | #less \
48 | #vim \
49 | ## parallelization
50 | #libzmq3-dev \
51 | libopenmpi-dev \
52 | && apt-get clean \
53 | && rm -rf /var/lib/apt/lists/* \
54 | ## Use tinytex for LaTeX installation
55 | #&& install2.r --error tinytex \
56 | ## Tell APT about the TeX Live installation
57 | ## by building a dummy package using equivs
58 | && apt-get install -y --no-install-recommends equivs \
59 | && cd /tmp \
60 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
61 | && equivs-build debian-* \
62 | && mv texlive-local*.deb texlive-local.deb \
63 | && dpkg -i texlive-local.deb \
64 | && apt-get -y purge equivs \
65 | && apt-get -y autoremove \
66 | ## Admin-based install of TinyTeX:
67 | && wget -qO- \
68 | "https://github.com/yihui/tinytex/raw/master/tools/install-unx.sh" | \
69 | sh -s - --admin --no-path \
70 | && mv ~/.TinyTeX /opt/TinyTeX \
71 | && if /opt/TinyTeX/bin/*/tex -v | grep -q 'TeX Live 2018'; then \
72 | ## Patch the Perl modules in the frozen TeX Live 2018 snapshot with the newer
73 | ## version available for the installer in tlnet/tlpkg/TeXLive, to include the
74 | ## fix described in https://github.com/yihui/tinytex/issues/77#issuecomment-466584510
75 | ## as discussed in https://www.preining.info/blog/2019/09/tex-services-at-texlive-info/#comments
76 | wget -P /tmp/ ${CTAN_REPO}/install-tl-unx.tar.gz \
77 | && tar -xzf /tmp/install-tl-unx.tar.gz -C /tmp/ \
78 | && cp -Tr /tmp/install-tl-*/tlpkg/TeXLive /opt/TinyTeX/tlpkg/TeXLive \
79 | && rm -r /tmp/install-tl-*; \
80 | fi \
81 | && /opt/TinyTeX/bin/*/tlmgr path add \
82 | && tlmgr install ae inconsolata listings metafont mfware parskip pdfcrop tex xcolor \
83 | && tlmgr path add \
84 | && Rscript -e "tinytex::r_texmf()" \
85 | && chown -R root:users /opt/TinyTeX \
86 | && chmod -R g+w /opt/TinyTeX \
87 | && chmod -R g+wx /opt/TinyTeX/bin \
88 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
89 | && install2.r --error PKI \
90 | ## And some nice R packages for publishing-related stuff
91 | && install2.r --error --deps TRUE \
92 | bookdown rticles rmdshower rJava \
93 | ## Install Node.js
94 | && curl -sL https://deb.nodesource.com/setup_12.x | bash \
95 | && DEPS="libpython-stdlib \
96 | libpython2-stdlib \
97 | libpython2.7-minimal \
98 | libpython2.7-stdlib \
99 | python \
100 | python-minimal \
101 | python2 python2-minimal \
102 | python2.7 \
103 | python2.7-minimal" \
104 | && apt-get install -y --no-install-recommends nodejs $DEPS \
105 | ## Install code-server extensions
106 | && cd /tmp \
107 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.9.0.vsix \
108 | ## Needed to get LaTeX Workshop to work (Broken extension? https://github.com/cdr/code-server/issues/1187)
109 | && cd /opt/code-server/extensions/james-yu.latex-workshop-8.9.0 \
110 | && npm install \
111 | ## Clean up (Node.js)
112 | && rm -rf /tmp/* \
113 | && apt-get remove --purge -y nodejs $DEPS \
114 | && apt-get autoremove -y \
115 | && apt-get autoclean -y \
116 | && rm -rf /var/lib/apt/lists/* \
117 | /root/.cache \
118 | /root/.config \
119 | /root/.local \
120 | /root/.npm
121 | #
122 | ## Consider including:
123 | # - yihui/printr R package (when released to CRAN)
124 | # - libgsl0-dev (GSL math library dependencies)
125 |
126 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
127 | USER ${NB_USER}
128 |
129 | ENV HOME=/home/${NB_USER}
130 |
131 | WORKDIR ${HOME}
132 |
--------------------------------------------------------------------------------
/verse/4.0.1.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.0.1
2 |
3 | # Version-stable CTAN repo from the tlnet archive at texlive.info, used in the
4 | # TinyTeX installation: chosen as the frozen snapshot of the TeXLive release
5 | # shipped for the base Debian image of a given rocker/r-ver tag.
6 | # Debian buster => TeXLive 2018, frozen release snapshot 2019/02/27
7 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2019/02/27/tlnet}
8 | ENV CTAN_REPO=${CTAN_REPO}
9 |
10 | USER root
11 |
12 | ENV PATH=$PATH:/opt/TinyTeX/bin/x86_64-linux/ \
13 | HOME=/root
14 | COPY vsix/* /tmp/
15 |
16 | WORKDIR ${HOME}
17 |
18 | ## Add LaTeX, rticles and bookdown support
19 | RUN apt-get update \
20 | && apt-get install -y --no-install-recommends \
21 | ## for rJava
22 | default-jdk \
23 | ## Nice Google fonts
24 | fonts-roboto \
25 | ## used by some base R plots
26 | ghostscript \
27 | ## used to build rJava and other packages
28 | libbz2-dev \
29 | libicu-dev \
30 | liblzma-dev \
31 | libpcre2-dev \
32 | ## system dependency of hunspell (devtools)
33 | libhunspell-dev \
34 | ## system dependency of hadley/pkgdown
35 | libmagick++-dev \
36 | ## rdf, for redland / linked data
37 | librdf0-dev \
38 | ## for V8-based javascript wrappers
39 | libnode-dev \
40 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
41 | qpdf \
42 | ## For building PDF manuals
43 | texinfo \
44 | ## for git via ssh key
45 | #ssh \
46 | ## just because
47 | #less \
48 | #vim \
49 | ## parallelization
50 | #libzmq3-dev \
51 | libopenmpi-dev \
52 | && apt-get clean \
53 | && rm -rf /var/lib/apt/lists/* \
54 | ## Use tinytex for LaTeX installation
55 | #&& install2.r --error tinytex \
56 | ## Tell APT about the TeX Live installation
57 | ## by building a dummy package using equivs
58 | && apt-get install -y --no-install-recommends equivs \
59 | && cd /tmp \
60 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
61 | && equivs-build debian-* \
62 | && mv texlive-local*.deb texlive-local.deb \
63 | && dpkg -i texlive-local.deb \
64 | && apt-get -y purge equivs \
65 | && apt-get -y autoremove \
66 | ## Admin-based install of TinyTeX:
67 | && wget -qO- \
68 | "https://github.com/yihui/tinytex/raw/master/tools/install-unx.sh" | \
69 | sh -s - --admin --no-path \
70 | && mv ~/.TinyTeX /opt/TinyTeX \
71 | && if /opt/TinyTeX/bin/*/tex -v | grep -q 'TeX Live 2018'; then \
72 | ## Patch the Perl modules in the frozen TeX Live 2018 snapshot with the newer
73 | ## version available for the installer in tlnet/tlpkg/TeXLive, to include the
74 | ## fix described in https://github.com/yihui/tinytex/issues/77#issuecomment-466584510
75 | ## as discussed in https://www.preining.info/blog/2019/09/tex-services-at-texlive-info/#comments
76 | wget -P /tmp/ ${CTAN_REPO}/install-tl-unx.tar.gz \
77 | && tar -xzf /tmp/install-tl-unx.tar.gz -C /tmp/ \
78 | && cp -Tr /tmp/install-tl-*/tlpkg/TeXLive /opt/TinyTeX/tlpkg/TeXLive \
79 | && rm -r /tmp/install-tl-*; \
80 | fi \
81 | && /opt/TinyTeX/bin/*/tlmgr path add \
82 | && tlmgr install ae inconsolata listings metafont mfware parskip pdfcrop tex xcolor \
83 | && tlmgr path add \
84 | && Rscript -e "tinytex::r_texmf()" \
85 | && chown -R root:users /opt/TinyTeX \
86 | && chmod -R g+w /opt/TinyTeX \
87 | && chmod -R g+wx /opt/TinyTeX/bin \
88 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
89 | && install2.r --error PKI \
90 | ## And some nice R packages for publishing-related stuff
91 | && install2.r --error --deps TRUE \
92 | bookdown rticles rmdshower rJava \
93 | ## Install code-server extensions
94 | && cd /tmp \
95 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.10.0.vsix \
96 | ## Clean up
97 | && rm -rf /tmp/*
98 | #
99 | ## Consider including:
100 | # - yihui/printr R package (when released to CRAN)
101 | # - libgsl0-dev (GSL math library dependencies)
102 |
103 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
104 | USER ${NB_USER}
105 |
106 | ENV HOME=/home/${NB_USER}
107 |
108 | WORKDIR ${HOME}
109 |
--------------------------------------------------------------------------------
/verse/4.0.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.0.2
2 |
3 | # Version-stable CTAN repo from the tlnet archive at texlive.info, used in the
4 | # TinyTeX installation: chosen as the frozen snapshot of the TeXLive release
5 | # shipped for the base Debian image of a given rocker/r-ver tag.
6 | # Debian buster => TeXLive 2018, frozen release snapshot 2019/02/27
7 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2019/02/27/tlnet}
8 | ENV CTAN_REPO=${CTAN_REPO}
9 |
10 | USER root
11 |
12 | ENV PATH=$PATH:/opt/TinyTeX/bin/x86_64-linux/ \
13 | HOME=/root
14 |
15 | WORKDIR ${HOME}
16 |
17 | ## Add LaTeX, rticles and bookdown support
18 | RUN apt-get update \
19 | && apt-get install -y --no-install-recommends \
20 | ## for rJava
21 | default-jdk \
22 | ## Nice Google fonts
23 | fonts-roboto \
24 | ## used by some base R plots
25 | ghostscript \
26 | ## used to build rJava and other packages
27 | libbz2-dev \
28 | libicu-dev \
29 | liblzma-dev \
30 | libpcre2-dev \
31 | ## system dependency of hunspell (devtools)
32 | libhunspell-dev \
33 | ## system dependency of hadley/pkgdown
34 | libmagick++-dev \
35 | ## system dependency of pdftools
36 | libpoppler-cpp-dev \
37 | ## rdf, for redland / linked data
38 | librdf0-dev \
39 | ## for V8-based javascript wrappers
40 | libnode-dev \
41 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
42 | qpdf \
43 | ## For building PDF manuals
44 | texinfo \
45 | ## for git via ssh key
46 | #ssh \
47 | ## just because
48 | #less \
49 | #vim \
50 | ## parallelization
51 | #libzmq3-dev \
52 | libopenmpi-dev \
53 | && apt-get clean \
54 | && rm -rf /var/lib/apt/lists/* \
55 | ## Use tinytex for LaTeX installation
56 | #&& install2.r --error tinytex \
57 | ## Tell APT about the TeX Live installation
58 | ## by building a dummy package using equivs
59 | && apt-get install -y --no-install-recommends equivs \
60 | && cd /tmp \
61 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
62 | && equivs-build debian-* \
63 | && mv texlive-local*.deb texlive-local.deb \
64 | && dpkg -i texlive-local.deb \
65 | && apt-get -y purge equivs \
66 | && apt-get -y autoremove \
67 | ## Admin-based install of TinyTeX:
68 | && wget -qO- \
69 | "https://github.com/yihui/tinytex/raw/master/tools/install-unx.sh" | \
70 | sh -s - --admin --no-path \
71 | && mv ~/.TinyTeX /opt/TinyTeX \
72 | && if /opt/TinyTeX/bin/*/tex -v | grep -q 'TeX Live 2018'; then \
73 | ## Patch the Perl modules in the frozen TeX Live 2018 snapshot with the newer
74 | ## version available for the installer in tlnet/tlpkg/TeXLive, to include the
75 | ## fix described in https://github.com/yihui/tinytex/issues/77#issuecomment-466584510
76 | ## as discussed in https://www.preining.info/blog/2019/09/tex-services-at-texlive-info/#comments
77 | wget -P /tmp/ ${CTAN_REPO}/install-tl-unx.tar.gz \
78 | && tar -xzf /tmp/install-tl-unx.tar.gz -C /tmp/ \
79 | && cp -Tr /tmp/install-tl-*/tlpkg/TeXLive /opt/TinyTeX/tlpkg/TeXLive \
80 | && rm -r /tmp/install-tl-*; \
81 | fi \
82 | && /opt/TinyTeX/bin/*/tlmgr path add \
83 | && tlmgr install \
84 | ae \
85 | graphics \
86 | graphics-def \
87 | ifluatex \
88 | ifxetex \
89 | inconsolata \
90 | listings \
91 | metafont \
92 | mfware \
93 | oberdiek \
94 | parskip \
95 | pdfcrop \
96 | tex \
97 | xcolor \
98 | && tlmgr path add \
99 | && Rscript -e "tinytex::r_texmf()" \
100 | && chown -R root:users /opt/TinyTeX \
101 | && chmod -R g+w /opt/TinyTeX \
102 | && chmod -R g+wx /opt/TinyTeX/bin \
103 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
104 | && install2.r --error PKI \
105 | ## And some nice R packages for publishing-related stuff
106 | && install2.r --error --deps TRUE \
107 | bookdown rticles rmdshower rJava \
108 | ## Install code-server extensions
109 | && cd /tmp \
110 | && curl -sLO https://dl.b-data.ch/vsix/James-Yu.latex-workshop-8.11.1.vsix \
111 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.11.1.vsix \
112 | ## Clean up
113 | && rm -rf /tmp/*
114 | #
115 | ## Consider including:
116 | # - yihui/printr R package (when released to CRAN)
117 | # - libgsl0-dev (GSL math library dependencies)
118 |
119 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
120 | USER ${NB_USER}
121 |
122 | ENV HOME=/home/${NB_USER}
123 |
124 | WORKDIR ${HOME}
125 |
--------------------------------------------------------------------------------
/verse/4.0.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.0.3
2 |
3 | ARG CTAN_REPO=${CTAN_REPO:-http://mirror.ctan.org/systems/texlive/tlnet}
4 | ENV CTAN_REPO=${CTAN_REPO}
5 |
6 | USER root
7 |
8 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
9 | HOME=/root
10 |
11 | WORKDIR ${HOME}
12 |
13 | ## Add LaTeX, rticles and bookdown support
14 | RUN apt-get update \
15 | && apt-get install -y --no-install-recommends \
16 | ## for rJava
17 | default-jdk \
18 | ## Nice Google fonts
19 | fonts-roboto \
20 | ## used by some base R plots
21 | ghostscript \
22 | ## used to install PhantomJS
23 | lbzip2 \
24 | ## used to build rJava and other packages
25 | libbz2-dev \
26 | libicu-dev \
27 | liblzma-dev \
28 | libpcre2-dev \
29 | ## system dependency of hunspell (devtools)
30 | libhunspell-dev \
31 | ## system dependency of hadley/pkgdown
32 | libmagick++-dev \
33 | ## system dependency of pdftools
34 | libpoppler-cpp-dev \
35 | ## rdf, for redland / linked data (depends on libcurl4-gnutls-dev)
36 | librdf0-dev \
37 | ## for V8-based javascript wrappers
38 | libnode-dev \
39 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
40 | qpdf \
41 | ## For building PDF manuals
42 | texinfo \
43 | ## for git via ssh key
44 | #ssh \
45 | ## just because
46 | #less \
47 | #vim \
48 | ## parallelization
49 | #libzmq3-dev \
50 | libopenmpi-dev \
51 | ## Install R package redland
52 | && install2.r --error --skipinstalled redland \
53 | ## Explicitly install runtime library sub-deps of librdf0-dev
54 | && apt-get install -y \
55 | libcurl4-openssl-dev \
56 | libxslt-dev \
57 | librdf0 \
58 | redland-utils \
59 | rasqal-utils \
60 | raptor2-utils \
61 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
62 | && apt-get -y autoremove \
63 | && apt-get clean \
64 | && rm -rf /var/lib/apt/lists/* \
65 | ## Tell APT about the TeX Live installation
66 | ## by building a dummy package using equivs
67 | && apt-get install -y --no-install-recommends equivs \
68 | && cd /tmp \
69 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
70 | && equivs-build debian-* \
71 | && mv texlive-local*.deb texlive-local.deb \
72 | && dpkg -i texlive-local.deb \
73 | && apt-get -y purge equivs \
74 | && apt-get -y autoremove \
75 | ## Admin-based install of TinyTeX:
76 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
77 | | sh -s - --admin --no-path \
78 | && mv ~/.TinyTeX /opt/TinyTeX \
79 | && /opt/TinyTeX/bin/*/tlmgr path add \
80 | && tlmgr update --self \
81 | && tlmgr install \
82 | ae \
83 | context \
84 | listings \
85 | makeindex \
86 | parskip \
87 | pdfcrop \
88 | && tlmgr path add \
89 | && Rscript -e "tinytex::r_texmf()" \
90 | && chown -R root:users /opt/TinyTeX \
91 | && chmod -R g+w /opt/TinyTeX \
92 | && chmod -R g+wx /opt/TinyTeX/bin \
93 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
94 | && install2.r --error PKI \
95 | ## And some nice R packages for publishing-related stuff
96 | && install2.r --error --deps TRUE \
97 | blogdown bookdown rticles rmdshower rJava xaringan \
98 | ## Install code-server extensions
99 | && cd /tmp \
100 | && curl -sLO https://dl.b-data.ch/vsix/James-Yu.latex-workshop-8.15.0.vsix \
101 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.15.0.vsix || true \
102 | ## Clean up
103 | && rm -rf /tmp/*
104 |
105 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
106 | USER ${NB_USER}
107 |
108 | ENV HOME=/home/${NB_USER}
109 |
110 | WORKDIR ${HOME}
111 |
--------------------------------------------------------------------------------
/verse/4.0.4.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.0.4
2 |
3 | ARG CTAN_REPO=${CTAN_REPO:-http://mirror.ctan.org/systems/texlive/tlnet}
4 | ENV CTAN_REPO=${CTAN_REPO}
5 |
6 | USER root
7 |
8 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
9 | HOME=/root
10 |
11 | WORKDIR ${HOME}
12 |
13 | ## Add LaTeX, rticles and bookdown support
14 | RUN apt-get update \
15 | && apt-get install -y --no-install-recommends \
16 | ## for rJava
17 | default-jdk \
18 | ## Nice Google fonts
19 | fonts-roboto \
20 | ## used by some base R plots
21 | ghostscript \
22 | ## used to install PhantomJS
23 | lbzip2 \
24 | ## used to build rJava and other packages
25 | libbz2-dev \
26 | libicu-dev \
27 | liblzma-dev \
28 | libpcre2-dev \
29 | ## system dependency of hunspell (devtools)
30 | libhunspell-dev \
31 | ## system dependency of hadley/pkgdown
32 | libmagick++-dev \
33 | ## system dependency of pdftools
34 | libpoppler-cpp-dev \
35 | ## rdf, for redland / linked data (depends on libcurl4-gnutls-dev)
36 | librdf0-dev \
37 | ## for V8-based javascript wrappers
38 | libnode-dev \
39 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
40 | qpdf \
41 | ## For building PDF manuals
42 | texinfo \
43 | ## for git via ssh key
44 | #ssh \
45 | ## just because
46 | #less \
47 | #vim \
48 | ## parallelization
49 | #libzmq3-dev \
50 | libopenmpi-dev \
51 | ## Install R package redland
52 | && install2.r --error --skipinstalled redland \
53 | ## Explicitly install runtime library sub-deps of librdf0-dev
54 | && apt-get install -y \
55 | libcurl4-openssl-dev \
56 | libxslt-dev \
57 | librdf0 \
58 | redland-utils \
59 | rasqal-utils \
60 | raptor2-utils \
61 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
62 | && apt-get -y autoremove \
63 | && apt-get clean \
64 | && rm -rf /var/lib/apt/lists/* \
65 | ## Tell APT about the TeX Live installation
66 | ## by building a dummy package using equivs
67 | && apt-get install -y --no-install-recommends equivs \
68 | && cd /tmp \
69 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
70 | && equivs-build debian-* \
71 | && mv texlive-local*.deb texlive-local.deb \
72 | && dpkg -i texlive-local.deb \
73 | && apt-get -y purge equivs \
74 | && apt-get -y autoremove \
75 | ## Admin-based install of TinyTeX:
76 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
77 | | sh -s - --admin --no-path \
78 | && mv ~/.TinyTeX /opt/TinyTeX \
79 | && /opt/TinyTeX/bin/*/tlmgr path add \
80 | && tlmgr update --self \
81 | && tlmgr install \
82 | ae \
83 | ## context fails to install on aarch64 with no output
84 | #context \
85 | listings \
86 | makeindex \
87 | parskip \
88 | pdfcrop \
89 | && tlmgr path add \
90 | && Rscript -e "tinytex::r_texmf()" \
91 | && chown -R root:users /opt/TinyTeX \
92 | && chmod -R g+w /opt/TinyTeX \
93 | && chmod -R g+wx /opt/TinyTeX/bin \
94 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
95 | && install2.r --error PKI \
96 | ## And some nice R packages for publishing-related stuff
97 | && install2.r --error --deps TRUE \
98 | blogdown bookdown rticles rmdshower rJava xaringan \
99 | ## Install code-server extensions
100 | && cd /tmp \
101 | && curl -sLO https://open-vsx.org/api/James-Yu/latex-workshop/8.16.1/file/James-Yu.latex-workshop-8.16.1.vsix \
102 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.16.1.vsix \
103 | ## Clean up
104 | && rm -rf /tmp/*
105 |
106 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
107 | USER ${NB_USER}
108 |
109 | ENV HOME=/home/${NB_USER}
110 |
111 | WORKDIR ${HOME}
112 |
--------------------------------------------------------------------------------
/verse/4.0.5.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.0.5
2 |
3 | ARG CTAN_REPO=${CTAN_REPO:-http://mirror.ctan.org/systems/texlive/tlnet}
4 | ENV CTAN_REPO=${CTAN_REPO}
5 |
6 | USER root
7 |
8 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
9 | HOME=/root
10 |
11 | WORKDIR ${HOME}
12 |
13 | ## Add LaTeX, rticles and bookdown support
14 | RUN apt-get update \
15 | && apt-get install -y --no-install-recommends \
16 | ## for rJava
17 | default-jdk \
18 | ## Nice Google fonts
19 | fonts-roboto \
20 | ## used by some base R plots
21 | ghostscript \
22 | ## used to install PhantomJS
23 | lbzip2 \
24 | ## used to build rJava and other packages
25 | libbz2-dev \
26 | libicu-dev \
27 | liblzma-dev \
28 | libpcre2-dev \
29 | ## system dependency of hunspell (devtools)
30 | libhunspell-dev \
31 | ## system dependency of hadley/pkgdown
32 | libmagick++-dev \
33 | ## system dependency of pdftools
34 | libpoppler-cpp-dev \
35 | ## rdf, for redland / linked data (depends on libcurl4-gnutls-dev)
36 | librdf0-dev \
37 | ## for V8-based javascript wrappers
38 | libnode-dev \
39 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
40 | qpdf \
41 | ## For building PDF manuals
42 | texinfo \
43 | ## for git via ssh key
44 | #ssh \
45 | ## just because
46 | #less \
47 | #vim \
48 | ## parallelization
49 | #libzmq3-dev \
50 | libopenmpi-dev \
51 | ## Install R package redland
52 | && install2.r --error --skipinstalled redland \
53 | ## Explicitly install runtime library sub-deps of librdf0-dev
54 | && apt-get install -y \
55 | libcurl4-openssl-dev \
56 | libxslt-dev \
57 | librdf0 \
58 | redland-utils \
59 | rasqal-utils \
60 | raptor2-utils \
61 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
62 | && apt-get -y autoremove \
63 | && apt-get clean \
64 | && rm -rf /var/lib/apt/lists/* \
65 | ## Tell APT about the TeX Live installation
66 | ## by building a dummy package using equivs
67 | && apt-get install -y --no-install-recommends equivs \
68 | && cd /tmp \
69 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
70 | && equivs-build debian-* \
71 | && mv texlive-local*.deb texlive-local.deb \
72 | && dpkg -i texlive-local.deb \
73 | && apt-get -y purge equivs \
74 | && apt-get -y autoremove \
75 | ## Admin-based install of TinyTeX:
76 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
77 | | sh -s - --admin --no-path \
78 | && mv ~/.TinyTeX /opt/TinyTeX \
79 | && /opt/TinyTeX/bin/*/tlmgr path add \
80 | && tlmgr update --self \
81 | && tlmgr install \
82 | ae \
83 | ## context fails to install on aarch64 with no output
84 | #context \
85 | listings \
86 | makeindex \
87 | parskip \
88 | pdfcrop \
89 | && tlmgr path add \
90 | && Rscript -e "tinytex::r_texmf()" \
91 | && chown -R root:users /opt/TinyTeX \
92 | && chmod -R g+w /opt/TinyTeX \
93 | && chmod -R g+wx /opt/TinyTeX/bin \
94 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
95 | && install2.r --error PKI \
96 | ## And some nice R packages for publishing-related stuff
97 | && install2.r --error --deps TRUE \
98 | blogdown bookdown rticles rmdshower rJava xaringan \
99 | ## Install code-server extensions
100 | && cd /tmp \
101 | && curl -sLO https://open-vsx.org/api/James-Yu/latex-workshop/8.18.0/file/James-Yu.latex-workshop-8.18.0.vsix \
102 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.18.0.vsix \
103 | ## Clean up
104 | && rm -rf /tmp/*
105 |
106 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
107 | USER ${NB_USER}
108 |
109 | ENV HOME=/home/${NB_USER}
110 |
111 | WORKDIR ${HOME}
112 |
--------------------------------------------------------------------------------
/verse/4.1.0.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.1.0
2 |
3 | ARG DEBIAN_FRONTEND=noninteractive
4 |
5 | ARG CTAN_REPO=${CTAN_REPO:-http://mirror.ctan.org/systems/texlive/tlnet}
6 | ENV CTAN_REPO=${CTAN_REPO}
7 |
8 | USER root
9 |
10 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
11 | HOME=/root
12 |
13 | WORKDIR ${HOME}
14 |
15 | ## Add LaTeX, rticles and bookdown support
16 | RUN apt-get update \
17 | && apt-get install -y --no-install-recommends \
18 | ## for rJava
19 | default-jdk \
20 | ## Nice Google fonts
21 | fonts-roboto \
22 | ## used by some base R plots
23 | ghostscript \
24 | ## used to install PhantomJS
25 | lbzip2 \
26 | ## used to build rJava and other packages
27 | libbz2-dev \
28 | libicu-dev \
29 | liblzma-dev \
30 | libpcre2-dev \
31 | ## system dependency of hunspell (devtools)
32 | libhunspell-dev \
33 | ## system dependency of hadley/pkgdown
34 | libmagick++-dev \
35 | ## system dependency of pdftools
36 | libpoppler-cpp-dev \
37 | ## rdf, for redland / linked data (depends on libcurl4-gnutls-dev)
38 | librdf0-dev \
39 | ## for V8-based javascript wrappers
40 | libnode-dev \
41 | ## R CMD Check wants qpdf to check pdf sizes, or throws a Warning
42 | qpdf \
43 | ## For building PDF manuals
44 | texinfo \
45 | ## for git via ssh key
46 | #ssh \
47 | ## just because
48 | #less \
49 | #vim \
50 | ## parallelization
51 | #libzmq3-dev \
52 | libopenmpi-dev \
53 | ## Install R package redland
54 | && install2.r --error --skipinstalled redland \
55 | ## Explicitly install runtime library sub-deps of librdf0-dev
56 | && apt-get install -y \
57 | libcurl4-openssl-dev \
58 | libxslt-dev \
59 | librdf0 \
60 | redland-utils \
61 | rasqal-utils \
62 | raptor2-utils \
63 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
64 | && apt-get -y autoremove \
65 | && apt-get clean \
66 | && rm -rf /var/lib/apt/lists/* \
67 | ## Tell APT about the TeX Live installation
68 | ## by building a dummy package using equivs
69 | && apt-get install -y --no-install-recommends equivs \
70 | && cd /tmp \
71 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
72 | && equivs-build debian-* \
73 | && mv texlive-local*.deb texlive-local.deb \
74 | && dpkg -i texlive-local.deb \
75 | && apt-get -y purge equivs \
76 | && apt-get -y autoremove \
77 | ## Admin-based install of TinyTeX:
78 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
79 | | sh -s - --admin --no-path \
80 | && mv ~/.TinyTeX /opt/TinyTeX \
81 | && /opt/TinyTeX/bin/*/tlmgr path add \
82 | && tlmgr update --self \
83 | && tlmgr install \
84 | ae \
85 | ## context fails to install on aarch64 with no output
86 | #context \
87 | listings \
88 | makeindex \
89 | parskip \
90 | pdfcrop \
91 | && tlmgr path add \
92 | && Rscript -e "tinytex::r_texmf()" \
93 | && chown -R root:users /opt/TinyTeX \
94 | && chmod -R g+w /opt/TinyTeX \
95 | && chmod -R g+wx /opt/TinyTeX/bin \
96 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
97 | && install2.r --error PKI \
98 | ## And some nice R packages for publishing-related stuff
99 | && install2.r --error --deps TRUE \
100 | blogdown bookdown rticles rmdshower rJava xaringan \
101 | ## Install code-server extensions
102 | && cd /tmp \
103 | && curl -sLO https://open-vsx.org/api/James-Yu/latex-workshop/8.19.2/file/James-Yu.latex-workshop-8.19.2.vsix \
104 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.19.2.vsix \
105 | ## Clean up
106 | && rm -rf /tmp/*
107 |
108 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
109 | USER ${NB_USER}
110 |
111 | ENV HOME=/home/${NB_USER}
112 |
113 | WORKDIR ${HOME}
114 |
--------------------------------------------------------------------------------
/verse/4.1.1.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.1.1
2 |
3 | ARG DEBIAN_FRONTEND=noninteractive
4 |
5 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2021/11/01/tlnet}
6 | ENV CTAN_REPO=${CTAN_REPO}
7 |
8 | USER root
9 |
10 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
11 | HOME=/root
12 |
13 | WORKDIR ${HOME}
14 |
15 | ## Add LaTeX, rticles and bookdown support
16 | RUN apt-get update \
17 | && apt-get install -y --no-install-recommends \
18 | default-jdk \
19 | fonts-roboto \
20 | ghostscript \
21 | lbzip2 \
22 | libbz2-dev \
23 | libicu-dev \
24 | liblzma-dev \
25 | libpcre2-dev \
26 | libhunspell-dev \
27 | libmagick++-dev \
28 | libpoppler-cpp-dev \
29 | librdf0-dev \
30 | ## Installing libnode-dev uninstalls nodejs
31 | ## https://github.com/jeroen/V8/issues/100
32 | #libnode-dev \
33 | qpdf \
34 | texinfo \
35 | libopenmpi-dev \
36 | ## Install R package redland
37 | && install2.r --error --skipinstalled redland \
38 | ## Explicitly install runtime library sub-deps of librdf0-dev
39 | && apt-get install -y \
40 | libcurl4-openssl-dev \
41 | libxslt-dev \
42 | librdf0 \
43 | redland-utils \
44 | rasqal-utils \
45 | raptor2-utils \
46 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
47 | && apt-get -y autoremove \
48 | && apt-get clean \
49 | && rm -rf /var/lib/apt/lists/* \
50 | ## Tell APT about the TeX Live installation
51 | ## by building a dummy package using equivs
52 | && apt-get install -y --no-install-recommends equivs \
53 | && cd /tmp \
54 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
55 | && equivs-build debian-* \
56 | && mv texlive-local*.deb texlive-local.deb \
57 | && dpkg -i texlive-local.deb \
58 | && apt-get -y purge equivs \
59 | && apt-get -y autoremove \
60 | ## Admin-based install of TinyTeX:
61 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
62 | | sh -s - --admin --no-path \
63 | && mv ~/.TinyTeX /opt/TinyTeX \
64 | && /opt/TinyTeX/bin/*/tlmgr path add \
65 | && tlmgr update --self \
66 | && tlmgr install \
67 | ae \
68 | ## context fails to install on aarch64 with no output
69 | #context \
70 | listings \
71 | makeindex \
72 | parskip \
73 | pdfcrop \
74 | && tlmgr path add \
75 | && Rscript -e "tinytex::r_texmf()" \
76 | && chown -R root:users /opt/TinyTeX \
77 | && chmod -R g+w /opt/TinyTeX \
78 | && chmod -R g+wx /opt/TinyTeX/bin \
79 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron \
80 | && install2.r --error PKI \
81 | ## And some nice R packages for publishing-related stuff
82 | && install2.r --error --deps TRUE \
83 | blogdown bookdown rticles rmdshower rJava xaringan \
84 | ## Install code-server extensions
85 | && cd /tmp \
86 | && curl -sLO https://open-vsx.org/api/James-Yu/latex-workshop/8.19.2/file/James-Yu.latex-workshop-8.19.2.vsix \
87 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop-8.19.2.vsix \
88 | ## Clean up
89 | && rm -rf /tmp/*
90 |
91 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
92 | USER ${NB_USER}
93 |
94 | ENV HOME=/home/${NB_USER}
95 |
96 | WORKDIR ${HOME}
97 |
--------------------------------------------------------------------------------
/verse/4.1.2.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.1.2
2 |
3 | ARG NCPUS=1
4 |
5 | ARG DEBIAN_FRONTEND=noninteractive
6 |
7 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2022/03/10/tlnet}
8 | ENV CTAN_REPO=${CTAN_REPO}
9 |
10 | USER root
11 |
12 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
13 | HOME=/root
14 |
15 | WORKDIR ${HOME}
16 |
17 | ## Add LaTeX, rticles and bookdown support
18 | RUN export CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/vendor/modules/code-oss-dev/extensions \
19 | && apt-get update \
20 | && apt-get install -y --no-install-recommends \
21 | default-jdk \
22 | fonts-roboto \
23 | ghostscript \
24 | hugo \
25 | lbzip2 \
26 | libbz2-dev \
27 | libglpk-dev \
28 | libgmp3-dev \
29 | libgl1-mesa-dev \
30 | libglu1-mesa-dev \
31 | libhunspell-dev \
32 | libicu-dev \
33 | liblzma-dev \
34 | #libpcre2-dev \
35 | libmagick++-dev \
36 | libopenmpi-dev \
37 | libpoppler-cpp-dev \
38 | librdf0-dev \
39 | ## Installing libnode-dev uninstalls nodejs
40 | ## https://github.com/jeroen/V8/issues/100
41 | #libnode-dev \
42 | qpdf \
43 | texinfo \
44 | ## Install R package redland
45 | && install2.r --error --skipinstalled -n $NCPUS redland \
46 | ## Explicitly install runtime library sub-deps of librdf0-dev
47 | && apt-get install -y \
48 | libcurl4-openssl-dev \
49 | libxslt-dev \
50 | librdf0 \
51 | redland-utils \
52 | rasqal-utils \
53 | raptor2-utils \
54 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
55 | && apt-get -y autoremove \
56 | && rm -rf /var/lib/apt/lists/* \
57 | ## Tell APT about the TeX Live installation
58 | ## by building a dummy package using equivs
59 | && apt-get install -y --no-install-recommends equivs \
60 | && cd /tmp \
61 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
62 | && equivs-build debian-* \
63 | && mv texlive-local*.deb texlive-local.deb \
64 | && dpkg -i texlive-local.deb \
65 | && apt-get -y purge equivs \
66 | && apt-get -y autoremove \
67 | ## Admin-based install of TinyTeX:
68 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
69 | | sh -s - --admin --no-path \
70 | && mv ~/.TinyTeX /opt/TinyTeX \
71 | && /opt/TinyTeX/bin/*/tlmgr path add \
72 | && tlmgr update --self \
73 | && tlmgr install \
74 | ae \
75 | listings \
76 | makeindex \
77 | parskip \
78 | pdfcrop \
79 | ## context installs on aarch64 but returns non-zero exit code
80 | && tlmgr install context || true \
81 | && tlmgr path add \
82 | && Rscript -e "tinytex::r_texmf()" \
83 | && chown -R root:users /opt/TinyTeX \
84 | && chmod -R g+w /opt/TinyTeX \
85 | && chmod -R g+wx /opt/TinyTeX/bin \
86 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron.site \
87 | && install2.r --error --skipinstalled -n $NCPUS PKI \
88 | ## And some nice R packages for publishing-related stuff
89 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
90 | blogdown \
91 | bookdown \
92 | distill \
93 | rticles \
94 | rmdshower \
95 | rJava \
96 | xaringan \
97 | ## Install code-server extensions
98 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop \
99 | ## Clean up
100 | && rm -rf /tmp/* \
101 | /root/.config \
102 | /root/.local \
103 | /root/.vscode-remote \
104 | /root/.wget-hsts
105 |
106 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
107 | USER ${NB_USER}
108 |
109 | ENV HOME=/home/${NB_USER}
110 |
111 | WORKDIR ${HOME}
112 |
--------------------------------------------------------------------------------
/verse/4.1.3.Dockerfile:
--------------------------------------------------------------------------------
1 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:4.1.3
2 |
3 | ARG NCPUS=1
4 |
5 | ARG DEBIAN_FRONTEND=noninteractive
6 |
7 | ARG CTAN_REPO=${CTAN_REPO:-https://www.texlive.info/tlnet-archive/2022/04/22/tlnet}
8 | ENV CTAN_REPO=${CTAN_REPO}
9 |
10 | USER root
11 |
12 | ENV PATH=/opt/TinyTeX/bin/x86_64-linux:$PATH \
13 | HOME=/root
14 |
15 | WORKDIR ${HOME}
16 |
17 | ## Add LaTeX, rticles and bookdown support
18 | RUN export CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions \
19 | && apt-get update \
20 | && apt-get install -y --no-install-recommends \
21 | default-jdk \
22 | fonts-roboto \
23 | ghostscript \
24 | hugo \
25 | lbzip2 \
26 | libbz2-dev \
27 | libglpk-dev \
28 | libgmp3-dev \
29 | libgl1-mesa-dev \
30 | libglu1-mesa-dev \
31 | libhunspell-dev \
32 | libicu-dev \
33 | liblzma-dev \
34 | #libpcre2-dev \
35 | libmagick++-dev \
36 | libopenmpi-dev \
37 | libpoppler-cpp-dev \
38 | librdf0-dev \
39 | ## Installing libnode-dev uninstalls nodejs
40 | ## https://github.com/jeroen/V8/issues/100
41 | #libnode-dev \
42 | qpdf \
43 | texinfo \
44 | ## Install R package redland
45 | && install2.r --error --skipinstalled -n $NCPUS redland \
46 | ## Explicitly install runtime library sub-deps of librdf0-dev
47 | && apt-get install -y \
48 | libcurl4-openssl-dev \
49 | libxslt-dev \
50 | librdf0 \
51 | redland-utils \
52 | rasqal-utils \
53 | raptor2-utils \
54 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
55 | && apt-get -y autoremove \
56 | && rm -rf /var/lib/apt/lists/* \
57 | ## Tell APT about the TeX Live installation
58 | ## by building a dummy package using equivs
59 | && apt-get install -y --no-install-recommends equivs \
60 | && cd /tmp \
61 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
62 | && equivs-build debian-* \
63 | && mv texlive-local*.deb texlive-local.deb \
64 | && dpkg -i texlive-local.deb \
65 | && apt-get -y purge equivs \
66 | && apt-get -y autoremove \
67 | ## Admin-based install of TinyTeX:
68 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
69 | | sh -s - --admin --no-path \
70 | && mv ~/.TinyTeX /opt/TinyTeX \
71 | && /opt/TinyTeX/bin/*/tlmgr path add \
72 | && tlmgr update --self \
73 | && tlmgr install \
74 | ae \
75 | listings \
76 | makeindex \
77 | parskip \
78 | pdfcrop \
79 | ## context installs on aarch64 but returns non-zero exit code
80 | && tlmgr install context || true \
81 | && tlmgr path add \
82 | && Rscript -e "tinytex::r_texmf()" \
83 | && chown -R root:users /opt/TinyTeX \
84 | && chmod -R g+w /opt/TinyTeX \
85 | && chmod -R g+wx /opt/TinyTeX/bin \
86 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron.site \
87 | && install2.r --error --skipinstalled -n $NCPUS PKI \
88 | ## And some nice R packages for publishing-related stuff
89 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
90 | blogdown \
91 | bookdown \
92 | distill \
93 | rticles \
94 | rmdshower \
95 | rJava \
96 | xaringan \
97 | ## Install code-server extensions
98 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop \
99 | ## Clean up
100 | && rm -rf /tmp/* \
101 | /root/.config \
102 | /root/.local \
103 | /root/.vscode-remote \
104 | /root/.wget-hsts
105 |
106 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
107 | USER ${NB_USER}
108 |
109 | ENV HOME=/home/${NB_USER}
110 |
111 | WORKDIR ${HOME}
112 |
--------------------------------------------------------------------------------
/verse/4.2.0.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG R_VERSION=4.2.0
2 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
3 | ARG CTAN_REPO=https://www.texlive.info/tlnet-archive/2022/06/23/tlnet
4 |
5 | FROM registry.gitlab.b-data.ch/jupyterlab/r/tidyverse:${R_VERSION}
6 |
7 | ARG NCPUS=1
8 |
9 | ARG DEBIAN_FRONTEND=noninteractive
10 |
11 | ARG CODE_BUILTIN_EXTENSIONS_DIR
12 | ARG CTAN_REPO
13 |
14 | USER root
15 |
16 | ENV HOME=/root \
17 | CTAN_REPO=${CTAN_REPO} \
18 | PATH=/opt/TinyTeX/bin/linux:$PATH
19 |
20 | WORKDIR ${HOME}
21 |
22 | ## Add LaTeX, rticles and bookdown support
23 | RUN apt-get update \
24 | && apt-get install -y --no-install-recommends \
25 | default-jdk \
26 | fonts-roboto \
27 | ghostscript \
28 | hugo \
29 | lbzip2 \
30 | libbz2-dev \
31 | libglpk-dev \
32 | libgmp3-dev \
33 | libgl1-mesa-dev \
34 | libglu1-mesa-dev \
35 | libhunspell-dev \
36 | libicu-dev \
37 | liblzma-dev \
38 | #libpcre2-dev \
39 | libmagick++-dev \
40 | libopenmpi-dev \
41 | libpoppler-cpp-dev \
42 | librdf0-dev \
43 | ## Installing libnode-dev uninstalls nodejs
44 | ## https://github.com/jeroen/V8/issues/100
45 | #libnode-dev \
46 | qpdf \
47 | texinfo \
48 | ## Install R package redland
49 | && install2.r --error --skipinstalled -n $NCPUS redland \
50 | ## Explicitly install runtime library sub-deps of librdf0-dev
51 | && apt-get install -y \
52 | libcurl4-openssl-dev \
53 | libxslt-dev \
54 | librdf0 \
55 | redland-utils \
56 | rasqal-utils \
57 | raptor2-utils \
58 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
59 | && apt-get -y autoremove \
60 | && rm -rf /var/lib/apt/lists/* \
61 | ## Tell APT about the TeX Live installation
62 | ## by building a dummy package using equivs
63 | && apt-get install -y --no-install-recommends equivs \
64 | && cd /tmp \
65 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
66 | && equivs-build debian-* \
67 | && mv texlive-local*.deb texlive-local.deb \
68 | && dpkg -i texlive-local.deb \
69 | && apt-get -y purge equivs \
70 | && apt-get -y autoremove \
71 | ## Admin-based install of TinyTeX:
72 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
73 | | sh -s - --admin --no-path \
74 | && mv ~/.TinyTeX /opt/TinyTeX \
75 | && ln -rs /opt/TinyTeX/bin/$(uname -m)-linux \
76 | /opt/TinyTeX/bin/linux \
77 | && /opt/TinyTeX/bin/linux/tlmgr path add \
78 | && tlmgr update --self \
79 | && tlmgr install \
80 | ae \
81 | cm-super \
82 | context \
83 | dvipng \
84 | listings \
85 | makeindex \
86 | parskip \
87 | pdfcrop \
88 | && tlmgr path add \
89 | && Rscript -e "tinytex::r_texmf()" \
90 | && chown -R root:${NB_GID} /opt/TinyTeX \
91 | && chmod -R g+w /opt/TinyTeX \
92 | && chmod -R g+wx /opt/TinyTeX/bin \
93 | && echo "PATH=${PATH}" >> /usr/local/lib/R/etc/Renviron.site \
94 | && install2.r --error --skipinstalled -n $NCPUS PKI \
95 | ## And some nice R packages for publishing-related stuff
96 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
97 | blogdown \
98 | bookdown \
99 | distill \
100 | rticles \
101 | rmdshower \
102 | rJava \
103 | xaringan \
104 | ## Install code-server extensions
105 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop \
106 | ## Clean up
107 | && rm -rf /tmp/* \
108 | /root/.config \
109 | /root/.local \
110 | /root/.vscode-remote \
111 | /root/.wget-hsts
112 |
113 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
114 | USER ${NB_USER}
115 |
116 | ENV HOME=/home/${NB_USER}
117 |
118 | WORKDIR ${HOME}
119 |
--------------------------------------------------------------------------------
/verse/4.2.1.Dockerfile:
--------------------------------------------------------------------------------
1 | ARG BUILD_ON_IMAGE=registry.gitlab.b-data.ch/jupyterlab/r/tidyverse
2 | ARG R_VERSION=4.2.1
3 | ARG CODE_BUILTIN_EXTENSIONS_DIR=/opt/code-server/lib/vscode/extensions
4 | ARG QUARTO_VERSION=1.1.251
5 | ARG CTAN_REPO=https://www.texlive.info/tlnet-archive/2022/10/31/tlnet
6 |
7 | FROM ${BUILD_ON_IMAGE}:${R_VERSION}
8 |
9 | ARG NCPUS=1
10 |
11 | ARG DEBIAN_FRONTEND=noninteractive
12 |
13 | ARG CODE_BUILTIN_EXTENSIONS_DIR
14 | ARG QUARTO_VERSION
15 | ARG CTAN_REPO
16 |
17 | USER root
18 |
19 | ENV HOME=/root \
20 | CTAN_REPO=${CTAN_REPO} \
21 | PATH=/opt/TinyTeX/bin/linux:/opt/quarto/bin:$PATH
22 |
23 | WORKDIR ${HOME}
24 |
25 | ## Add LaTeX, rticles and bookdown support
26 | RUN dpkgArch="$(dpkg --print-architecture)" \
27 | && apt-get update \
28 | && apt-get install -y --no-install-recommends \
29 | default-jdk \
30 | fonts-roboto \
31 | ghostscript \
32 | hugo \
33 | lbzip2 \
34 | libbz2-dev \
35 | libglpk-dev \
36 | libgmp3-dev \
37 | libgl1-mesa-dev \
38 | libglu1-mesa-dev \
39 | libhunspell-dev \
40 | libicu-dev \
41 | liblzma-dev \
42 | #libpcre2-dev \
43 | libmagick++-dev \
44 | libopenmpi-dev \
45 | libpoppler-cpp-dev \
46 | librdf0-dev \
47 | ## Installing libnode-dev uninstalls nodejs
48 | ## https://github.com/jeroen/V8/issues/100
49 | #libnode-dev \
50 | qpdf \
51 | texinfo \
52 | ## Install R package redland
53 | && install2.r --error --skipinstalled -n $NCPUS redland \
54 | ## Explicitly install runtime library sub-deps of librdf0-dev
55 | && apt-get install -y \
56 | libcurl4-openssl-dev \
57 | libxslt-dev \
58 | librdf0 \
59 | redland-utils \
60 | rasqal-utils \
61 | raptor2-utils \
62 | ## Get rid of librdf0-dev and its dependencies (incl. libcurl4-gnutls-dev)
63 | && apt-get -y autoremove \
64 | && rm -rf /var/lib/apt/lists/* \
65 | && if [ ${dpkgArch} = "amd64" ]; then \
66 | ## Install quarto
67 | curl -sLO https://github.com/quarto-dev/quarto-cli/releases/download/v${QUARTO_VERSION}/quarto-${QUARTO_VERSION}-linux-${dpkgArch}.tar.gz; \
68 | mkdir -p /opt/quarto; \
69 | tar -xzf quarto-${QUARTO_VERSION}-linux-${dpkgArch}.tar.gz -C /opt/quarto --no-same-owner --strip-components=1; \
70 | rm quarto-${QUARTO_VERSION}-linux-${dpkgArch}.tar.gz; \
71 | ## Remove quarto pandoc
72 | rm /opt/quarto/bin/tools/pandoc; \
73 | ## Link to system pandoc
74 | ln -s /usr/bin/pandoc /opt/quarto/bin/tools/pandoc; \
75 | fi \
76 | ## Tell APT about the TeX Live installation
77 | ## by building a dummy package using equivs
78 | && apt-get install -y --no-install-recommends equivs \
79 | && cd /tmp \
80 | && wget https://github.com/scottkosty/install-tl-ubuntu/raw/master/debian-control-texlive-in.txt \
81 | && equivs-build debian-* \
82 | && mv texlive-local*.deb texlive-local.deb \
83 | && dpkg -i texlive-local.deb \
84 | && apt-get -y purge equivs \
85 | && apt-get -y autoremove \
86 | ## Admin-based install of TinyTeX:
87 | && wget -qO- "https://yihui.org/tinytex/install-unx.sh" \
88 | | sh -s - --admin --no-path \
89 | && mv ~/.TinyTeX /opt/TinyTeX \
90 | && ln -rs /opt/TinyTeX/bin/$(uname -m)-linux \
91 | /opt/TinyTeX/bin/linux \
92 | && /opt/TinyTeX/bin/linux/tlmgr path add \
93 | && tlmgr update --self \
94 | ## TeX packages as requested by the community
95 | && curl -sSLO https://yihui.org/gh/tinytex/tools/pkgs-yihui.txt \
96 | && tlmgr install $(cat pkgs-yihui.txt | tr '\n' ' ') \
97 | && rm -f pkgs-yihui.txt \
98 | ## TeX packages as in rocker/verse
99 | && tlmgr install \
100 | context \
101 | pdfcrop \
102 | ## TeX packages as in jupyter/scipy-notebook
103 | && tlmgr install \
104 | cm-super \
105 | dvipng \
106 | ## TeX packages specific for nbconvert
107 | && tlmgr install \
108 | oberdiek \
109 | titling \
110 | && tlmgr path add \
111 | && Rscript -e "tinytex::r_texmf()" \
112 | && chown -R root:${NB_GID} /opt/TinyTeX \
113 | && chmod -R g+w /opt/TinyTeX \
114 | && chmod -R g+wx /opt/TinyTeX/bin \
115 | && install2.r --error --skipinstalled -n $NCPUS PKI \
116 | ## And some nice R packages for publishing-related stuff
117 | && install2.r --error --deps TRUE --skipinstalled -n $NCPUS \
118 | blogdown \
119 | bookdown \
120 | distill \
121 | quarto \
122 | rticles \
123 | rmdshower \
124 | rJava \
125 | xaringan \
126 | ## Install code-server extensions
127 | && if [ ${dpkgArch} = "amd64" ]; then \
128 | code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension quarto.quarto; \
129 | fi \
130 | && code-server --extensions-dir ${CODE_BUILTIN_EXTENSIONS_DIR} --install-extension James-Yu.latex-workshop \
131 | ## Clean up
132 | && rm -rf /tmp/* \
133 | /root/.config \
134 | /root/.local \
135 | /root/.vscode-remote \
136 | /root/.wget-hsts
137 |
138 | ## Switch back to ${NB_USER} to avoid accidental container runs as root
139 | USER ${NB_USER}
140 |
141 | ENV HOME=/home/${NB_USER}
142 |
143 | WORKDIR ${HOME}
144 |
--------------------------------------------------------------------------------