Dockerfile 示例

发布时间 2023-04-24 00:44:08作者: lqqgis

postgres扩展postgis

FROM postgres:13.10
RUN apt-get update
RUN apt-get install -y postgresql-13-postgis-3 postgresql-13-postgis-3-dbgsym postgresql-13-postgis-3-scripts

jetty搭载geoserver

FROM jetty:9.4.51-jdk17

USER root
RUN mkdir /var/lib/jetty/work

# 本地 geoserver.war 加入镜像
ADD geoserver.war /var/lib/jetty/webapps/

ENV GEOSERVER_DATA_DIR /var/lib/geoserver_data
ENV PATH $PATH:$GEOSERVER_DATA_DIR

自定义python环境

FROM python:3.9.16

# install -y 遇到交互 yes/no 选yes
RUN apt-get update && \
    apt-get install -y openssh-server && \ 
    apt-get install -y git
    # apt-get install -y vim
RUN sed -i '/#PermitRootLogin prohibit-password/cPermitRootLogin yes' /etc/ssh/sshd_config
RUN sed -i -e '18aservice ssh start' /root/.bashrc
RUN echo "root:lqqgis"|chpasswd

RUN mkdir /var/lib/gdal-related-libs

# # 从网上获取
# # ADD https://www.sqlite.org/2023/sqlite-autoconf-3410200.tar.gz /var/lib/gdal-related-libs
# # ADD https://download.osgeo.org/proj/proj-8.1.0.tar.gz /var/lib/gdal-related-libs
# # ADD https://github.com/Kitware/CMake/releases/download/v3.13.2/cmake-3.13.2.tar.gz /var/lib/gdal-related-libs
# # ADD http://download.osgeo.org/gdal/3.6.3/gdal-3.6.3.tar.gz /var/lib/gdal-related-libs

# # tar.gz 会自动解压,并删除原文件
ADD gdal-related-libs/*.tar.gz /var/lib/gdal-related-libs

# 每次RUN都是重新进入容器后处理,有路径变动建议写在一起
RUN cd /var/lib/gdal-related-libs && \
    cd sqlite-autoconf-3410200 && ./configure && make && make install && ldconfig && \ 
    cd ../proj-8.1.0 && ./configure && make && make check && make install && \
    cd ../cmake-3.13.2 && ./bootstrap && make && make install && \
    cd ../gdal-3.6.3 && mkdir build && cd build && cmake .. && cmake --build . && cmake --build . --target install
    
RUN pip install fastapi[all]==0.95.1 && \
    pip install requests==2.28.2 && \
    pip install python-jose==3.3.0 && \
    pip install passlib==1.7.4 && \
    pip install SQLAlchemy==1.4.43 && \
    pip install GeoAlchemy2==0.13.2 && \
    pip install psycopg2==2.9.6 && \
    pip install pandas==2.0.0 && \
    pip install jsonpath==0.82 && \
    pip install ulid-py==1.1.0 && \
    pip install Fiona==1.9.3 && \
    pip install pyproj==3.5.0 && \
    pip install cchardet==2.1.7 && \
    pip install mapclassify==2.5.0 && \
    pip install jupyter==1.0.0 && \
    pip cache purge

ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib

EXPOSE 8480
EXPOSE 22

ENTRYPOINT ["/bin/bash"]