一、简介
介绍:GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。【百度百科】
个人理解:这玩意就是一个数据转换工具。会将各种类型的数据文件,通过GDAL提供的命令或工具,给你转成你需要的格式。比如:做地图的时候,DXF文件,转成,GeoJson文件。我们就是这样用的。
二、安装
1、当前系统版本
[root@localhost gdal-3.2.0]# cat /proc/version
# linux centos 内核el7.x86_64 gcc版本4.8.5
Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020
2、安装方法
2.1 、普通安装
2.2.1、下载
1、可以去官网下载(推荐
)
2、也还可以Debian下载,后者还提供源码和编译好的文件下载(Debian版本)。
3、另外github上也有docker版本:
2.2.2、尝试安装GDAL,安装gcc以及gcc-c++
参考博客:gdal-3.1.2 linux(Ubuntu) 编译 附SQLite3 PROJ6编译
下载地址:gdal-3.2.0.tar.gz
#上传文件gdal-3.2.0.tar.gz 到 /home/gdal下
[root@localhost]# tar -zxvf gdal-3.2.0.tar.gz
#....省略解压过程
[root@localhost]# mkdir install_file
[root@localhost]# cd gdal-3.2.0
[root@localhost gdal-3.2.0]# pwd
/home/gdal/gdal-3.2.0
[root@localhost gdal-3.2.0]# ./configure --prefix=/home/install_file
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/gdal/gdal-3.2.0':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
#解析:缺少依赖
[root@localhost gdal-3.2.0]# yum install gcc gcc-c++
#省略下载安装过程
#再次执行./configure --prefix=/home/install_file ,就会发现gcc检测安装成功,因内容太多,详见截图
#最后发现没有PROJ 依赖(这个地方不一定是没有依赖,还可能是你没使用--with-proj指定PROJ的安装文件)
#经过查询博客发现 PROJ 这个坐标转换工具,还需要依赖sqlite,遂,先安装sqlite3
[root@localhost gdal-3.2.0]#
2.2.3、安装依赖SQLITE
参考:博客
#因为之前使用 yum update。就没安装博客上写的安装依赖包
[root@localhost home]# mkdir sqlite;cd sqlite
[root@localhost sqlite]# wget https://sqlite.org/2022/sqlite-autoconf-3400000.tar.gz
# 省略下载过程
[root@localhost sqlite]# tar -zxvf sqlite-autoconf-3400000.tar.gz
# 省略解压过程
[root@localhost sqlite]#mkdir install_file;cd sqlite-autoconf-3400000
#注意执行之前,按照博客,在配置文文件中增加一行(包括#)
#define SQLITE_ENABLE_COLUMN_METADATA 1
#不过我没找到sqlite.c,在sqlite3.c上加的。
#否则,后期在安装GDAL的时候,会报错。详见 [7、安装GDAL中间碰到的坑]
[root@localhost sqlite-autoconf-3400000]# ./configure --prefix=/home/sqlite3/install_file
#执行结果省略,最后结果如下
#有了Makefile就可以执行make命令
[root@localhost sqlite-autoconf-3400000]# make && make install
#执行完毕,回到之前的目录中,即 config命令指定的安装目录
[root@localhost sqlite-autoconf-3400000]# cd ../install_file/
[root@localhost install_file]# ll
total 0
drwxr-xr-x. 2 root root 21 2023-03-29 11:04:13 bin
drwxr-xr-x. 2 root root 43 2023-03-29 11:04:13 include
drwxr-xr-x. 3 root root 135 2023-03-29 11:04:13 lib
drwxr-xr-x. 3 root root 17 2023-03-29 11:04:13 share
#出现了安装文件
#安装博客所说,建立新的连接,使用新版本的sqlite
[root@localhost install_file]# cd /usr/bin
[root@localhost bin]# sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
[root@localhost bin]# mv sqlite3 sqlite3_old
#建议直接生成的/home/sqlite3/install_file/bin拷贝/usr/bin下
[root@localhost bin]# ln -s /home/sqlite3/install_file/bin/sqlite3 /usr/bin/sqlite3
[root@localhost bin]# sqlite3 -version
3.40.0 2022-11-16 12:10:08 89c459e766ea7e9165d0beeb124708b955a4950d0f4792f457465d71b158d318
#环境变量
[root@localhost bin]# vim ~/.bashrc
[root@localhost bin]# source ~/.bashrc
[root@localhost bin]# echo $PKG_CONFIG_PATH
/home/sqlite3/install_file/lib/pkgconfig:/usr/local/sqlite/lib/pkgconfig:
[root@localhost bin]# sudo ldconfig
2.2.4、安装PROJ
注意:proj
安装需要依赖sqlite3
,且sqlite3>= 3.11
proj官网下载地址:下载地址
[root@localhost bin]# cd /home;mkdir proj;cd proj
[root@localhost proj]# wget https://download.osgeo.org/proj/proj-8.2.1.tar.gz
--2023-03-29 13:44:01-- https://download.osgeo.org/proj/proj-8.2.1.tar.gz
Resolving download.osgeo.org (download.osgeo.org)... 140.211.15.30
Connecting to download.osgeo.org (download.osgeo.org)|140.211.15.30|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5882136 (5.6M) [application/octet-stream]
Saving to: ‘proj-8.2.1.tar.gz’
100%[=================================================================================>] 5,882,136 1.76MB/s in 3.2s
2023-03-29 13:44:11 (1.76 MB/s) - ‘proj-8.2.1.tar.gz’ saved [5882136/5882136]
[root@localhost proj]# mkdir install_file;cd proj-8.2.1
[root@localhost proj-8.2.1]# ./configure --prefix=/home/proj/install_file
#.......省略前面的
#..................................
checking for TIFF... configure: error: Package requirements (libtiff-4) were not met:
No package 'libtiff-4' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables TIFF_CFLAGS
and TIFF_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
#缺少依赖 安装依赖
[root@localhost proj-8.2.1]# yum install -y libtiff libtiff-devel.x86_64 libcurl-devel.x86_64
#再次执行 编译
[root@localhost proj-8.2.1]# ./configure --prefix=/home/proj/install_file
#截图见截图
[root@localhost proj-8.2.1]# make && make install
只装 yum install -y libtiff libtiff-devel.x86_64
再次使用config
进行配置,会报错,需要装:yum install -y libcurl-devel.x86_64
2.2.5、配置环境变量
2.2.6、安装GDAL
[root@localhost home]# cd /home/gdal/gdal-6.3.2
#需要是用参数[--with-proj=$PROJ_INSTALL_PATH]指定proj的安装路径。否则会给你报错,详见[2.2.6章节 4、proj版本问题]
[root@localhost gdal-6.3.2]# ./configure --prefix=/home/gdal/install_file --with-proj=/home/proj/install_file
#报错查看 当前目录下 config.log,进行排错。关于编译的问题不用管。关于check的问题,选择性处理。一般软件支持很多功能,附属功能的插件依赖可以不用管。影响安装的插件依赖必须处理。最后config.log日志最后 exit 0 表示配置成功。可以进行make编译了。中间的错误,查看2.2.6
[root@localhost gdal-6.3.2]# make & make install
configure成功后的截图
。
2.2.7、安装中碰到的问题
1 、proj 找不到依赖
iso19111/internal.cpp:48:21: fatal error: sqlite3.h: No such file or directory
#include "sqlite3.h"
找不到头文件的问题。是因为系统没有安装函数
【补充】:
当用交叉编译器编译的时候,也会出现找不到sqlite3.h头文件的情况,解决方法是把sqlite3.h这个头文件放到交叉编译工具目录的 include目录下
执行
#注意 apt,centos里没有这个命令。且yum install libsqlite3-dev 找不到这个依赖
sudo apt-get install libsqlite3-dev 找不到这个依赖
#解决方案:可以将sqlite3.h文件复制到编译工具下
cp /home/sqlite3/install_file/includ/sqlite3.h /home/proj/proj-8.2.1/include/
2、configure失败
#在当前目录下,查看config.log
ld returned 1 exit status
#表示编译的语法等出错。且 make[2],意味前面有一个错误make[1]导致了这个错误
还有类似的:cannot stat '.deps/sqlite3-shell.Tpo': No such file or directory
等等。关于.deps
都是依赖问题。
#依赖错误,因为操作系统依赖,不知道是哪个包的依赖,所以统一的全部都在装一下
yum -y install bzip2 gcc make subversion gcc-c++ sqlite-devel libxml2 libxml2-devel python-devel numpy expat-devel libcurl-devel postgresql postgresql-devel
#装完之后,make distclean后,重新make,结果还是报这个错误。经过多次翻找排查。
#出现这个问题是,因为 sqlite-devel没有安装成功
#在有网的电脑上,安装上sqlite-devel,将安装文件拷贝到虚拟机即可
3、gcc版本问题
出现 gcc: error: unrecognized command line option '-V'
这种问题是gcc版本太低了。导致编译出错。根据里面的要求 gcc -qversion >&5
将gcc版本更换为5以上的版本。
更换后还有这两类问题,不用管。一般不会影响安装,进行其他步骤即可。
更换gcc版本方法,不予赘述:CentOS下快速升级gcc版本
4、proj版本问题
中间多次安装不成功,我将proj 8降低到了proj 4版本,重新安装完成后,直接安装GDAL报错。
需要proj >=6的版本。8的版本多次安装不成功,更换6.3.2的版本。
==================
后来才发现。不是版本的问题。而是configure gdal的时候需要使用[--with-proj]属性,
来指定PROJ的安装路径,但是么。。。我没指定,所以,我又双叒叕装了一边PROJ。
5、需要sqlite3>=3.11
#安装PROJ 6 需要sqlite3 >=3.11以上。
#已经安装的,需要配置环境变量
export PKG_CONFIG_PATH=/home/sqlite3/install_file/lib/pkgconfig:$PKG_CONFIG_PATH
#安装完毕后,在/usr/bin下增加proj的命令。(可以不用下面操作,这是configure我未指定PROJ的地址,尝试让脚本识别PROJ的命令,才加的。所以我注释掉了)
#ln -s /home/proj/install_file/bin/proj /usr/bin/proj
#建议直接将 cp -r /home/proj/install_file/bin/* /usr/bin/
6、彻底更换gcc
通过工具切换gcc后,在进行配置GDAL的时候,发现,运行命令是
[root@localhost ~]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-7/root/usr --mandir=/opt/rh/devtoolset-7/root/usr/share/man --infodir=/opt/rh/devtoolset-7/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --with-default-libstdcxx-abi=gcc4-compatible --with-isl=/builddir/build/BUILD/gcc-7.3.1-20180303/obj-x86_64-redhat-linux/isl-install --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)
#确实 是 7.3.1版本。COLLECT_LTO_WRAPPER指向gcc7版本的lto-wrapper
#但是在 gdal进行configure的时候,根据日志,COLLECT_LTO_WRAPPER指向的是旧版本的gcc。
#直接替换/usr/bin/下关于gcc的命令,会使编译的COLLECT_LTO_WRAPPER指向正确的gcc。但是C的版本无法保证是正确的。。。导致C的部分无法编译。
参考博客:安装最新版本的GCC编译器(./configure执行编译报错 C++ compiler too old)
更换GCC的时候,源码安装失败,根据提示安装GMP 4.2+,MPFR 2.4.0+ MPC 0.8.0+
到最后。。。。gcc还是没有更换成功。。。。可是我明明这几个我都装了啊!烦死了。。。。。
7、安装GDAL中间碰到的坑
根据提示 sqlite3_column_orgin_name 以及 sqlite3_column_table_name 这俩参数在 libgdal.so里找不到.
根据博客的提示:
博客1是,缺包缺依赖opencv。
博客2是,源码安装sqlite3的时候,没有预初始化。
到最后我按照博客2解决的,在安装sqlite3配置的时候,增加一行配置,初始化一下sqlite3的参数
博客1:编译example出现/usr/lib/libgdal.so.20: undefined reference to `sqlite3_column_orig错误解决
博客2:ImportError: /lib/libgdal.so.26: undefined symbol: sqlite3_column_table_name
2.2、docker容器内安装
参考博客:【Linux】CentOS制作Java+GDAL环境镜像并部署运行SpringBoot项目
如果按照当前这个dockerfile来构建镜像。
需要提前准备:
-
jdk-8u301-linux-x64.tar.gz
、 -
geos-3.6.2.tar.bz2
、 -
proj-4.9.3.tar.gz
、 -
FileGDB_API_1_5_64.tar.gz
、 -
apache-ant-1.10.7-bin.tar.gz
、 -
swig-4.0.1.tar.gz
、 gdal-2.4.4.tar.gz
贴了一下人家的dockfile,这个DockerFile文件本质上说,还是按普通安装的步骤来弄的。只不过软件是安装到容器里了。有耐心编写DockerFile,且有信心能安装成功的可以试试。因为我上面本地都没有安装成功,本人没信心使用DockerFile安装成功,就没进行这个操作。
# 以centos7为基础镜像构建本镜像
FROM centos:7
LABEL maintainer="DORIC"
#------------------- 安装JAVA8 -------------------
# 使用ADD命令将与Dockerfile相同目录下的文件拷贝并解压缩至镜像指定目录下
# 非常规格式的文件复制建议使用COPY命令替代
ADD ./jdk-8u301-linux-x64.tar.gz /usr/local
# 设置工作目录为镜像中的指定路径,后续命令均在此目录下执行
WORKDIR /usr/local
# 修改文件名,以/usr/local/java为JAVA_HOME
RUN mv jdk1.8.0_301 /usr/local/java
# Dockerfile使用ENV设置环境变量
# 设置JAVA环境变量
ENV JAVA_HOME /usr/local/java
ENV JAVA_BIN /usr/local/java/bin
ENV JRE_HOME /usr/local/java/jre
# 将java中可执行文件目录添加到PATH
ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin
ENV CLASSPATH $CLASSPATH:/usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar
#------------------- 安装编译所需要的工具及库 -------------------
RUN yum -y install \
bzip2 \
gcc \
make \
subversion \
gcc-c++ \
sqlite-devel \
libxml2 \
libxml2-devel \
python-devel \
numpy \
expat-devel \
libcurl-devel \
postgresql \
postgresql-devel
#------------------- 安装geos -------------------
# 复制文件到镜像中指定目录
COPY ./geos-3.6.2.tar.bz2 /usr/local/
WORKDIR /usr/local
# 解压缩文件到当前目录下
RUN tar -xvf geos-3.6.2.tar.bz2
WORKDIR /usr/local/geos-3.6.2
RUN ./configure
RUN make && make install
# 删除已经安装完毕的压缩包、安装包
RUN rm -rf /usr/local/geos-3.6.2.tar.bz2
RUN rm -rf /usr/local/geos-3.6.2
#------------------- 安装proj4 -------------------
COPY ./proj-4.9.3.tar.gz /usr/local/
WORKDIR /usr/local
RUN tar -xvf proj-4.9.3.tar.gz
WORKDIR /usr/local/proj-4.9.3
RUN ./configure
RUN make && make install
RUN rm -rf /usr/local/proj-4.9.3.tar.gz
RUN rm -rf /usr/local/proj-4.9.3
# ------------------- 安装filegdb api -------------------
# 用于实现GDAL操作GDB文件
COPY ./FileGDB_API_1_5_64.tar.gz /usr/local/
WORKDIR /usr/local
# 解压缩
RUN gunzip FileGDB_API_1_5_64.tar.gz
RUN tar -xvf FileGDB_API_1_5_64.tar
# 以/usr/local/FileGDB_API为安装目录
RUN mv FileGDB_API-64 /usr/local/FileGDB_API
# 将FileGDB_API的动态链接目录添加到LD_LIBRARY_PATH,否则报未定义参考错误
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/FileGDB_API/lib
# 拷贝动态链接文件后需要执行ldconfig命令以刷新
RUN ldconfig
# 继续编译FileGDB_API,将生成的动态连接文件复制到/usr/local/lib/下
WORKDIR /usr/local/FileGDB_API/samples
RUN make
RUN cp ../lib/* /usr/local/lib/
RUN rm -rf /usr/local/FileGDB_API_1_5_64.tar
RUN rm -rf /usr/local/FileGDB_API_1_5_64.tar.gz
# https://gis.stackexchange.com/questions/292506/how-do-i-install-esri-file-gdb-api-in-ubuntu-16-04-so-qgis-2-8-can-see-it
# cd src/FileGDB_API-64gcc51
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/lib
# cd samples
# make
# cp ../lib/* /usr/local/lib/
# ldconfig
#------------------- 安装ant -------------------
# 用于编译gdal.jar
COPY apache-ant-1.10.7-bin.tar.gz /usr/local
WORKDIR /usr/local
RUN tar -xvf apache-ant-1.10.7-bin.tar.gz
RUN mv apache-ant-1.10.7 ant
RUN rm -rf /usr/local/apache-ant-1.10.7-bin.tar.gz
#------------------- 安装swig -------------------
COPY swig-4.0.1.tar.gz /usr/local
WORKDIR /usr/local
RUN tar -xvf swig-4.0.1.tar.gz
WORKDIR /usr/local/swig-4.0.1
RUN ./configure \
--prefix=/usr/local/swig \
--without-pcre
RUN make && make install
RUN rm -rf /usr/local/swig-4.0.1
RUN rm -rf /usr/local/swig-4.0.1.tar.gz
# 配置ant/swig环境变量
ENV ANT_HOME /usr/local/ant
ENV SWIG_HOME /usr/local/swig
ENV PATH $PATH:$ANT_HOME/bin:$SWIG_HOME/bin
#------------------- 编译安装GDAL -------------------
COPY gdal-2.4.4.tar.gz /usr/local
WORKDIR /usr/local
RUN tar -xvf gdal-2.4.4.tar.gz
WORKDIR /usr/local/gdal-2.4.4
RUN ./configure \
--prefix=/usr/local/gdal \
--with-pg \
--with-java=/usr/local/java \
--with-curl=/usr/bin/curl-config \
--with-xml2=/usr/bin/xml2-config \
--with-fgdb=/usr/local/FileGDB_API
RUN make && make install
# 配置GDAL环境变量,包含了GDAL_HOME和GDAL_DATA
ENV GDAL_HOME /usr/local/gdal
ENV GDAL_DATA $GDAL_HOME/share/gdal
# 将gdal中的可执行文件和动态链接文件分别拷贝到/usr/local/bin/和/usr/local/lib/
WORKDIR /usr/local/gdal
RUN cp -r ./bin/* /usr/local/bin/
RUN cp -r ./lib/* /usr/local/lib/
RUN ldconfig
# 可执行文件和动态链接库添加到环境变量中
ENV PATH $PATH:/usr/local/bin
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib
#------------------- 编译gdal.jar -------------------
# 在执行完编译安装的解压缩文件gdal-2.4.4目录下
WORKDIR /usr/local/gdal-2.4.4/swig/java
# 修改java.opt的java_home,在第五行插入指定内容
RUN sed -i '5aJAVA_HOME = /usr/local/java' java.opt
RUN make && make install
# 复制生成的gdal.jar和so文件到指定目录,否则报错,java.lang.UnsatisfiedLinkError:org.gdal.gdal.gdalJNI.AllRegister()V
RUN cp gdal.jar /usr/local/java/jre/lib/ext/
RUN cp *.so /usr/local/java/jre/lib/amd64/server/
ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/java/jre/lib/amd64/server
# RUN rm -rf /usr/local/gdal-2.4.4
RUN rm -rf /usr/local/gdal-2.4.4.tar.gz
WORKDIR /usr/local
2.3、使用官方制作的IMAGES
官方文档:官方文档
GitHub上官方的dockerImages:gdal_docker_image
JAVA使用GDAL:gdal的使用
关于官方镜像使用方法文档:官方镜像使用文档文章来源:https://www.toymoban.com/news/detail-442262.html
注意: 下面的脚本只提供参考思路,不要直接使用。因为这是跟我的自己的项目写的DockfFile
文章来源地址https://www.toymoban.com/news/detail-442262.html
这个DockerFile是使用官方镜像作为基础镜像,在其基础上将自己的项目构架成新的镜像。
亲测。好用~
另外,第二种方法跟第一种方法差不多。第一种方法,我在自己的虚拟机上安装成功,在公司服务器(无网)上安装失败。
这是我放弃第二种方法的主要原因!其次的原因就是,准备的包比较多,而且我无法确定其依赖版本是否正确。所以最后放弃第二种方法!!!
其次,关于官方docker镜像的运行,在上面的引用文档中有,可能小伙伴没有自己看文档,这里贴一下
注意:tag/版本号
docker run -it \
-v $(pwd):/gdal:rw \
ghcr.io/osgeo/gdal-deps:ubuntu_20.04-master
mkdir -p /home/dockerfile/planning;cd /home/dockerfile/planning;
#使用官方镜像制作images
docker pull ghcr.io/osgeo/gdal:ubuntu-full-3.2.0
echo "###########################"
echo "#### 开始编写DockerFile ###"
echo "###########################"
#编写DockerFile
echo "开始编写DockerFile........"
touch /home/dockerfile/planning/DockerFile
tee /home/dockerfile/planning/DockerFile <<-'EOF'
#将官方镜像做为基础镜像
FROM ghcr.io/osgeo/gdal:ubuntu-ful1-3.2.0
MAINTÄINER system
LABEL name="planning" version="2.0" auth="mcs"
VOLUME /home/planning/data
RUN mkdir -p /home/planning/data
WORKDIR /home/planning
#注意:执行脚本前。注意DockerFile文件的位置,以及程序包的位置。
COPY planning.jar /home/planning/planning.jar
ENTRYPOINT ["java","-jar","planning.jar"]
'EOF'
echo "编写DockerFile完成........"
echo "###########################"
echo "#### 开始编写启动文件 ###"
echo "###########################"
touch /home/dockerfile/planning/start.sh
tee /home/dockerfile/planning/start.sh <<-'EOF'
#!/bib/bash_
export server=planning
export name=planning
export port=9481
export serverPort=9481
export version=$1
if [ ! -n "$version" ]; then
echo "请指定[版本]"
echo "请使用此命令:sh start.sh [版本]"
echo"示例:sh start.sh 20220523"
exit
fi
echo "###########################"
echo "#### 开始构建镜像 ###"
echo "###########################"
echo "start building....."
docker build -f DockerFile -t $name:$version .
echo "================================="
echo "building result:"
docker images | grep -w $name
echo "================================="
echo "###########################"
echo "#### 开始运行容器 ###"
echo "###########################"
echo "docker start running...."
echo "执行命令[docker run -p $port:$serverPort --name $name.$version -v /home/logs/$name/$vers ion:/home/$name/logs/$server -d name:$version]"
docker run -p $port:$serverport --name $name.$version \
-v /home/logs/$name/$version:/home/$name/logs/$server \
-v /etc/localtime:/etc/localtime \
--privileged=true \
-d $name:$version
echo "当前版本:$version 日志位置:/home/logs/$name/$version"
echo "启动命令执行完毕!"
echo "================================="
echo "start result:"
docker ps -a| grep -w $name
echo "================================="
'EOF'
#开始运行脚本
sh start.sh
到了这里,关于Linux下安装GDAL(含docker部分)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!