了解一个简单的postgresql dockerfile

我只是在这里阅读一个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 -p /docker-entrypoint-initdb.d COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/postgis.sh 

运行命令正在运行一个mkdir命令,这意味着当前目录将有一个名为的子目录:

 /docker-entrypoint-initdb.d 

并在下一个命令IE的COPY命令中将目录./initdb-postgis.sh的内容复制到/docker-entrypoint-initdb.d/postgis.sh ,对不对?

RUN cmd用于执行cmd命令,并将为正在构build的映像创build并提交一个新图层。 所以这些命令在正在构build的映像的上下文中运行。 mkdir -p /docker-entrypoint-initdb.d会在映像的根目录下创build一个新的文件夹docker-entrypoint-initdb.dCOPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/postgis.sh会将文件initdb-postgis.sh (必须位于与运行docker build command相同的级别)复制到文件/docker-entrypoint-initdb.d/postgis.sh里面的容器。