Dockerfile是以YAML格式撰寫的檔案,其內容是用一行一行指令組成,是用來描述映像檔如何生成的行為。
#開頭代表註解# dockerfile
# Author: 阿榜
# Version: 1.0.0
FROM是基底映像檔FROM golang:1.15.2-alpine3.12
FROM <image>或FROM <image>:<tag>
WORKDIR設定工作目錄WORKDIR /app
RUN執行指定的指令# only for demo
RUN mkdir -p /home/demo/hello
RUN ["apt-get", "install", "curl"]
RUN apt-get update && apt-get install -y --force-yes nginx \
php5-fpm \
php5
RUN <command>或RUN ["executable", "param1", "param2"]
\符號來換行,比較容易閱讀。JSON array的格式,格式內需使用雙引號。&&來串連多個命令。COPY複製本地的檔案/目錄到映像檔的指定位置中COPY env.yaml config.yaml ./
COPY [–chown=<user>:<group>] <src>… <dest>
ADD和COPY一樣,可將本地端的檔案/目錄加到映像檔的指定位置ADD env.yaml config.yaml ./
ADD [–chown=<user>:<group>] <src>… <dest>
EXPOSE對外的連接埠EXPOSE 8080/tcp
EXPOSE <port> [<port>/<protocol>…]
ENV設定環境變數ENV GO111MODULE=on
ENV <key> <value>或ENV <key>=<value> …
CMD映像檔啟動時,預設要執行的指令CMD ["Hello"]
CMD [“executable”,”param1″,”param2″]或CMD [“param1″,”param2”]或CMD command param1 param2
透過Dockerfile我們可以把應用程式需要的建置流程寫進去,運維人員不用再考慮如何架設機器環境一致性,可以大大降低在部署系統時的複雜度。