理解postgresql的简单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

我正在读一份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-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