博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker社区的geodata/gdal镜像dockerfile分析
阅读量:5133 次
发布时间:2019-06-13

本文共 2561 字,大约阅读时间需要 8 分钟。

对应从事遥感与地理信息的同仁来说,gdal应该是所有工具中使用频度最高的库了,那么在docker中使用gdal时,面临的第一步就是构建gdal基础镜像,社区中引用最多的就是geodata提供的gdal基础镜像包,封装的gdal最新版本是2.3.0dev。

geodata/gdal的docker在github上的地址如下:

https://github.com/geo-data/gdal-docker

根据该库的提交记录,其生成gdal镜像的方法经历了多次更新:

1 最初按照gdal官网步骤自行编译;

2 基于makefile采用make系统编译;

3 基于gdal的travel ci 脚本进行编译。

dockerfile内容如下:

### geodata/gdal## This creates an Ubuntu derived base image that installs the latest GDAL# subversion checkout compiled with a broad range of drivers.  The build process# is based on that defined in# 
## Ubuntu 14.04 Trusty TahyrFROM ubuntu:trustyMAINTAINER Homme Zwaagstra
# Install the application.ADD . /usr/local/src/gdal-docker/RUN /usr/local/src/gdal-docker/build.sh# Externally accessible data is by default put in /dataWORKDIR /dataVOLUME ["/data"]# Output version and capabilities by default.CMD gdalinfo --version && gdalinfo --formats && ogrinfo --formats

基于ubuntu:trusty基础镜像,复制镜像构建相关内容到镜像的/usr/local/src/gdal-docker目录,利用build.sh脚本执行构建操作。

build.sh内容如下:

#!/bin/sh### Install GDAL from within a docker container## This script is designed to be run from within a docker container in order to# install GDAL. It delegates to `before_install.sh` and `install.sh` which are# patched from the Travis CI configuration in the GDAL repository.#set -eDIR=$(dirname "$(readlink -f "$0")")GDAL_VERSION=$(cat ${DIR}/gdal-checkout.txt)export DEBIAN_FRONTEND=noninteractive# Set the locale. Required for subversion to work on the repository.update-locale LANG="C.UTF-8"dpkg-reconfigure locales. /etc/default/localeexport LANG# Instell prerequisites.apt-get update -yapt-get install -y \        software-properties-common \        wget \        unzip \        subversion \        ccache \        clang-3.5 \        patch \        python-dev \        ant# Everything happens under here.cd /tmp# Get GDAL.svn checkout --quiet "http://svn.osgeo.org/gdal/${GDAL_VERSION}/" /tmp/gdal/# Install GDAL.cd /tmp/gdal# Apply our build patches.patch ./gdal/ci/travis/trusty_clang/before_install.sh ${DIR}/before_install.sh.patchpatch ./gdal/ci/travis/trusty_clang/install.sh ${DIR}/install.sh.patch# Do the build.. ./gdal/ci/travis/trusty_clang/before_install.sh. ./gdal/ci/travis/trusty_clang/install.sh# Clean up.apt-get autoremove -yapt-get cleanrm -rf /var/lib/apt/lists/partial/* /tmp/* /var/tmp/*

设置GDAL_VERSION(从gdal-checkout.txt读取,为trunk,表示从svn主干分支下载源代码),下载gdal源代码到/tmp/gdal目录,下载编译器clang和python环境,对gdal的trusty_clang的travis安装脚本打补丁(通过修改后调用diff工具生成patch),安装gdal,清理临时文件。

转载于:https://www.cnblogs.com/dadream/p/8058810.html

你可能感兴趣的文章
用户权限设置
查看>>
java 之equals与"=="的区别
查看>>
LinkedList<E>源码分析
查看>>
学习微软 Excel 2002 VBA 编程和XML,ASP技术
查看>>
游戏开发常用算法
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Intellij IDEA(eclipse设置)常用快捷键
查看>>
深入理解Java:注解(Annotation)基本概念
查看>>
NAT基本原理
查看>>
Java Content Repository API 简介 转自(https://www.ibm.com/developerworks/cn/java/j-jcr/)
查看>>
visio二次开发——图纸解析
查看>>
Activity之间的跳转:
查看>>
iTunes Connect 开发者上手经验(转)
查看>>
vertical-align你为什么不生效
查看>>
C++ 实践总结
查看>>
composer 国内镜像配置
查看>>
软件是天时、地利、人和的产物!
查看>>
python定时清空本目录下除本脚本外的全部文件
查看>>
【PHP】在目标字符串指定位置插入字符串
查看>>