Skip to content

Commit ea3ea19

Browse files
committed
whole build script for the Docker image
1 parent 4470137 commit ea3ea19

File tree

2 files changed

+68
-5
lines changed

2 files changed

+68
-5
lines changed

Dockerfile

Lines changed: 67 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,72 @@
1-
FROM calthorpeanalytics/python3-geo:3.6.3-1.0.0
1+
FROM python:3.6-stretch
22

3-
RUN mkdir /code
4-
WORKDIR /code
3+
RUN mkdir -p /provisioning
4+
WORKDIR /provisioning
5+
6+
# Install OS dependencies
7+
RUN apt-get update && apt-get install -y \
8+
build-essential \
9+
dialog \
10+
curl \
11+
less \
12+
nano \
13+
unzip \
14+
vim \
15+
gcc \
16+
libgeos-dev \
17+
zlib1g-dev && \
18+
rm -rf /var/lib/apt/lists/*
19+
20+
RUN echo "Installing Spatial Index library..." && \
21+
mkdir -p /provisioning/spatialindex && \
22+
cd /provisioning/spatialindex && \
23+
curl -# -O http://download.osgeo.org/libspatialindex/spatialindex-src-1.8.5.tar.gz && \
24+
tar -xzf spatialindex-src-1.8.5.tar.gz && \
25+
cd spatialindex-src-1.8.5 && \
26+
./configure --prefix=/usr/local && \
27+
make -j$(python -c 'import multiprocessing; print(multiprocessing.cpu_count())') && \
28+
make install && \
29+
ldconfig && \
30+
rm -rf /provisioning/spatialindex*
31+
32+
RUN echo "Installing GEOS library..." && \
33+
mkdir -p /provisioning/geos && \
34+
cd /provisioning/geos && \
35+
curl -# -O http://download.osgeo.org/geos/geos-3.5.1.tar.bz2 && \
36+
tar -xjf geos-3.5.1.tar.bz2 && \
37+
cd geos-3.5.1 && \
38+
./configure && \
39+
make -j$(python -c 'import multiprocessing; print(multiprocessing.cpu_count())') && \
40+
make install && \
41+
ldconfig -v && \
42+
rm -rf /provisioning/geos*
543

6-
RUN pip install numpy==1.12.1 --src /usr/local/src
44+
RUN echo "Installing Proj4 library..." && \
45+
mkdir -p /provisioning/proj4 && \
46+
cd /provisioning/proj4 && \
47+
curl -# -O http://download.osgeo.org/proj/proj-4.9.3.tar.gz && \
48+
tar -xzf proj-4.9.3.tar.gz && \
49+
cd proj-4.9.3 && \
50+
./configure && \
51+
make -j$(python -c 'import multiprocessing; print(multiprocessing.cpu_count())') && \
52+
make install && \
53+
ldconfig -v && \
54+
rm -rf /provisioning/proj4
55+
56+
# basemap (incorrectly) requires numpy to be installed *before* installing it
57+
RUN pip install --upgrade numpy && \
58+
echo "Installing Basemap plotting library..." && \
59+
mkdir -p /provisioning/matplotlib-basemap && \
60+
cd /provisioning/matplotlib-basemap && \
61+
curl -# -o basemap-1.0.7rel.tar.gz https://codeload.github.com/matplotlib/basemap/tar.gz/v1.0.7rel && \
62+
tar -xzf basemap-1.0.7rel.tar.gz && \
63+
cd basemap-1.0.7rel && \
64+
python setup.py install && \
65+
rm -rf /provisioning/matplotlib-basemap
66+
67+
RUN mkdir /code && \
68+
pip install numpy==1.12.1 --src /usr/local/src
69+
WORKDIR /code
770

871
COPY requirements.txt /code/
972
RUN pip install -r requirements.txt --src /usr/local/src --exists-action=w

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ performance:
66

77
notebook:
88
docker-compose build
9-
mkdir ./notebooks
9+
mkdir -p ./notebooks
1010
docker-compose up notebook
1111

1212
docker-clean:

0 commit comments

Comments
 (0)