Skip to content

Commit

Permalink
Made the context more portable between builds
Browse files Browse the repository at this point in the history
The Dockerfile and associated context is better suited for copying and
pasting as components of Dockerfiles which require GDAL functionality.
  • Loading branch information
Homme Zwaagstra committed Jun 20, 2014
1 parent 6dd0a08 commit da56d87
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 72 deletions.
15 changes: 9 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,16 @@ RUN apt-get install -y \
sudo

# Install the GDAL source dependencies
ADD ./install-gdal-deps.sh /usr/local/bin/
RUN sh /usr/local/bin/install-gdal-deps.sh
ADD ./install-gdal-deps.sh /tmp/
RUN sh /tmp/install-gdal-deps.sh

# Install GDAL itself
ADD ./checkout.txt /usr/local/share/gdal-checkout.txt
ADD ./install-gdal.sh /usr/local/bin/
RUN sh /usr/local/bin/install-gdal.sh
ADD ./gdal-checkout.txt /tmp/gdal-checkout.txt
ADD ./install-gdal.sh /tmp/
RUN sh /tmp/install-gdal.sh

# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# Run the GDAL test suite by default
CMD cd /usr/local/src/gdal/autotest && ./run_all.py
CMD cd /usr/local/share/gdal-autotest && ./run_all.py
File renamed without changes.
60 changes: 30 additions & 30 deletions install-gdal-deps.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,50 +5,50 @@
#

# Set up postgres
service postgresql start
sudo -u postgres psql -c "create database autotest"
sudo -u postgres psql -c "create extension postgis" -d autotest
service postgresql start || exit 1
sudo -u postgres psql -c "create database autotest" || exit 1
sudo -u postgres psql -c "create extension postgis" -d autotest || exit 1

# Set up mysql
mysqld_safe & # fire up the server
mysqld_safe || exit 1 & # fire up the server
sleep 15s # give it time to get up
mysql -e "create database autotest;"
mysql -e "GRANT ALL ON autotest.* TO 'root'@'localhost';" -u root
mysql -e "GRANT ALL ON autotest.* TO 'travis'@'localhost';" -u root
mysql -e "create database autotest;" || exit 1
mysql -e "GRANT ALL ON autotest.* TO 'root'@'localhost';" -u root || exit 1
mysql -e "GRANT ALL ON autotest.* TO 'travis'@'localhost';" -u root || exit 1

# Get source packages
cd /usr/local/src
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/FileGDB_API_1_2-64.tar.gz
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44.tar.gz
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/install-libecwj2-ubuntu12.04-64bit.tar.gz
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/install-libkml-r864-64bit.tar.gz
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/install-openjpeg-2.0.0-ubuntu12.04-64bit.tar.gz
cd /tmp/ && \
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/FileGDB_API_1_2-64.tar.gz && \
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44.tar.gz && \
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/install-libecwj2-ubuntu12.04-64bit.tar.gz && \
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/install-libkml-r864-64bit.tar.gz && \
wget -q http://s3.amazonaws.com/etc-data.koordinates.com/gdal-travisci/install-openjpeg-2.0.0-ubuntu12.04-64bit.tar.gz || exit 1

# Install MrSID
tar xzf MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44.tar.gz
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Raster_DSDK/include/* /usr/local/include
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Raster_DSDK/lib/* /usr/local/lib
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Lidar_DSDK/include/* /usr/local/include
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Lidar_DSDK/lib/* /usr/local/lib
tar xzf MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44.tar.gz && \
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Raster_DSDK/include/* /usr/local/include && \
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Raster_DSDK/lib/* /usr/local/lib && \
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Lidar_DSDK/include/* /usr/local/include && \
cp -r MrSID_DSDK-8.5.0.3422-linux.x86-64.gcc44/Lidar_DSDK/lib/* /usr/local/lib || exit 1

# Install FileGDB
tar xzf FileGDB_API_1_2-64.tar.gz
cp -r FileGDB_API/include/* /usr/local/include
cp -r FileGDB_API/lib/* /usr/local/lib
tar xzf FileGDB_API_1_2-64.tar.gz && \
cp -r FileGDB_API/include/* /usr/local/include && \
cp -r FileGDB_API/lib/* /usr/local/lib || exit 1

# Install libecwj2
tar xzf install-libecwj2-ubuntu12.04-64bit.tar.gz
cp -r install-libecwj2/include/* /usr/local/include
cp -r install-libecwj2/lib/* /usr/local/lib
tar xzf install-libecwj2-ubuntu12.04-64bit.tar.gz && \
cp -r install-libecwj2/include/* /usr/local/include && \
cp -r install-libecwj2/lib/* /usr/local/lib || exit 1

# Install libkml
tar xzf install-libkml-r864-64bit.tar.gz
cp -r install-libkml/include/* /usr/local/include
cp -r install-libkml/lib/* /usr/local/lib
tar xzf install-libkml-r864-64bit.tar.gz && \
cp -r install-libkml/include/* /usr/local/include && \
cp -r install-libkml/lib/* /usr/local/lib || exit 1

# Install openjpeg
tar xzf install-openjpeg-2.0.0-ubuntu12.04-64bit.tar.gz
cp -r install-openjpeg/include/* /usr/local/include
cp -r install-openjpeg/lib/* /usr/local/lib
tar xzf install-openjpeg-2.0.0-ubuntu12.04-64bit.tar.gz && \
cp -r install-openjpeg/include/* /usr/local/include && \
cp -r install-openjpeg/lib/* /usr/local/lib || exit 1

ldconfig
75 changes: 39 additions & 36 deletions install-gdal.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,45 +4,48 @@
# Obtain, configure and install GDAL
#

checkout=`cat /usr/local/share/gdal-checkout.txt`
checkout=`cat /tmp/gdal-checkout.txt`

# Checkout GDAL from github
cd /
svn checkout "https://svn.osgeo.org/gdal/${checkout}/" /usr/local/src/gdal
cd / && \
svn checkout "https://svn.osgeo.org/gdal/${checkout}/" /tmp/gdal || exit 1

# Configure GDAL
cd /usr/local/src/gdal/gdal
./configure --prefix=/usr/local \
--without-libtool \
--enable-debug \
--with-jpeg12 \
--with-python \
--with-poppler \
--with-podofo \
--with-spatialite \
--with-mysql \
--with-liblzma \
--with-webp \
--with-epsilon \
--with-gta \
--with-ecw=/usr/local \
--with-mrsid=/usr/local \
--with-mrsid-lidar=/usr/local \
--with-fgdb=/usr/local \
--with-libkml \
--with-openjpeg=/usr/local
cd /tmp/gdal/gdal && \
./configure --prefix=/usr/local \
--without-libtool \
--enable-debug \
--with-jpeg12 \
--with-python \
--with-poppler \
--with-podofo \
--with-spatialite \
--with-mysql \
--with-liblzma \
--with-webp \
--with-epsilon \
--with-gta \
--with-ecw=/usr/local \
--with-mrsid=/usr/local \
--with-mrsid-lidar=/usr/local \
--with-fgdb=/usr/local \
--with-libkml \
--with-openjpeg=/usr/local || exit 1

# Make and install
make
cd apps
make test_ogrsf
cd ..
cd swig/perl
make generate
make
cd ../..
rm -f /usr/lib/libgdal.so*
make install
ldconfig
cd ../autotest/cpp
make
make && \
cd apps && \
make test_ogrsf && \
cd .. && \
cd swig/perl && \
make generate && \
make && \
cd ../.. && \
rm -f /usr/lib/libgdal.so* && \
make install && \
ldconfig && \
cd ../autotest/cpp && \
make || exit 1

# Create the test directory
mv /tmp/gdal/autotest /usr/local/share/gdal-autotest || exit 1

0 comments on commit da56d87

Please sign in to comment.