了解一个简单的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.d
。 COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/postgis.sh
会将文件initdb-postgis.sh
(必须位于与运行docker build command
相同的级别)复制到文件/docker-entrypoint-initdb.d/postgis.sh
里面的容器。