-
Notifications
You must be signed in to change notification settings - Fork 46
/
Dockerfile
167 lines (145 loc) · 3.72 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# Image with preinstalled Java, Python, and R
FROM ubuntu:jammy
ARG DEBIAN_FRONTEND=noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Use specific Java version
ARG JAVA_VERSION=11.0.11.hs-adpt
# Add support for https apt repositories
RUN apt-get -y update && apt-get install -y \
apt-transport-https \
apt-utils \
ca-certificates
# Install support for managing locales
RUN apt-get -y update && apt-get install -y \
locales
# Update locales
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
&& locale-gen en_US.utf8 \
&& update-locale LC_ALL=en_US.UTF-8 \
&& update-locale LANG=en_US.UTF-8
# Install support for add-apt-repository
RUN apt-get -y update && apt-get install -y \
software-properties-common \
gnupg \
dirmngr \
wget
# Add repository for misc GIS utilities
RUN apt-add-repository -y ppa:ubuntugis/ubuntugis-unstable
# Add repositories for R
RUN wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
RUN add-apt-repository -y "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
RUN add-apt-repository -y ppa:c2d4u.team/c2d4u4.0+
# Removing this to prevent dependency errors further down the line
RUN apt-get remove -y python3-blinker
# Install general purpose utilities
RUN apt-get -y update && apt-get install -y \
aria2 \
autoconf \
bc \
bison \
build-essential \
cmake \
csh \
curl \
dbview \
dtach \
ed \
enchant-2 \
flex \
gcc \
gettext \
git \
imagemagick \
jq \
locales \
mlocate \
nano \
p7zip-full \
parallel \
pkg-config \
rsync \
screen \
sudo \
tmux \
tree \
unrar-free \
unzip \
vim \
zip
# Install GIS utilities
RUN apt-get update -y && apt-get install -y \
gdal-bin=3.8.4+dfsg-1~jammy0 \
proj-bin=9.3.1-1~jammy0 \
gsl-bin \
saga \
shapelib \
swig \
tcl-dev \
xml-twig-tools
# Install R and related
RUN apt-get -y update && apt-get install -y \
r-base \
r-base-dev \
r-cran-rmpi
# Install python and related
RUN apt-get -y update && apt-get install -y \
python3 \
python3-dev \
python3-venv \
python3-pip \
python3-opencv \
python3-virtualenv \
python3-wheel
# Install libraries and headers
RUN apt-get -y update && apt-get install -y \
libboost-dev \
libcairo2-dev \
libcgal-dev \
libcunit1-dev \
libcurl4-openssl-dev \
libdbd-xbase-perl \
libffi-dev \
libfribidi-dev \
libgdal-dev \
libgeos-dev \
libgeos++-dev \
libgfortran5 \
libglade2-dev \
libglu1-mesa-dev \
libgmp3-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer1.0-dev \
libgtk2.0-dev \
libharfbuzz-dev \
libmagick++-dev \
libnetcdf-dev \
libopenmpi-dev \
libpq-dev \
libproj-dev \
libpython3-dev \
libspatialindex-dev \
libssl-dev \
libudunits2-dev \
libxcursor-dev \
libxinerama-dev \
libxml2-dev \
libxrandr-dev \
libxt-dev
# Make sure pip is up-to-date
RUN pip3 install --upgrade pip
RUN pip3 install \
pandas \
pyshp \
rasterio \
scikit-learn \
statsmodels
# Install Java: configure SDKMAN! directory
ARG SDKMAN_DIR=/usr/local/lib/sdkman
# Install Java: install SDKMAN!
RUN curl -s https://get.sdkman.io | bash
# Install Java: set SDKMAN! to non-interactive
RUN sed -ie 's/sdkman_auto_answer=false/sdkman_auto_answer=true/' ${SDKMAN_DIR}/etc/config
# Install Java: use SDKMAN! to install Adoption Java 11
RUN bash -c 'source ${SDKMAN_DIR}/bin/sdkman-init.sh && sdk install java ${JAVA_VERSION}'
# Configure R Java home
RUN bash -c 'source ${SDKMAN_DIR}/bin/sdkman-init.sh && R CMD javareconf'