理解postgresql的简单dockerfile
我正在读一份docker文件 Dockerfile基本上如下所示:理解postgresql的简单dockerfile,docker,Docker,我正在读一份docker文件 Dockerfile基本上如下所示: FROM postgres:9.1 MAINTAINER Mike Dillon <mike@appropriate.io> ENV POSTGIS_MAJOR 2.1 ENV POSTGIS_VERSION 2.1.7+dfsg-3~94.git954a8d0.pgdg80+1 RUN apt-get update \ && apt-get install -y --no-insta
FROM postgres:9.1
MAINTAINER Mike Dillon <mike@appropriate.io>
ENV POSTGIS_MAJOR 2.1
ENV POSTGIS_VERSION 2.1.7+dfsg-3~94.git954a8d0.pgdg80+1
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
postgis=$POSTGIS_VERSION \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /docker-entrypoint-initdb.d
COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/postgis.sh
RUN命令正在运行一个mkdir
命令,这意味着当前目录将有一个子目录,名为:
/docker-entrypoint-initdb.d
在下一个命令,即COPY命令中,目录
/initdb postgis.sh
的内容被复制到/docker entrypoint initdb.d/postgis.sh
,对吗 runcmd
用于执行cmd
命令,并将为正在构建的图像创建和提交一个新层。因此,这些命令是在正在构建的图像的上下文中运行的mkdir-p/docker entrypoint initdb.d
将在映像根目录中创建一个新文件夹docker entrypoint initdb.d
COPY./initdb-postgis.sh/docker entrypoint initdb.d/postgis.sh
将把文件initdb postgis.sh
(该文件必须位于您运行docker build命令的同一级别上)复制到容器内的文件/docker entrypoint initdb.d/postgis.sh
/docker-entrypoint-initdb.d