1. 程式人生 > >GitHub+Docker Hub自動構建映象

GitHub+Docker Hub自動構建映象

一、什麼是Dockerfile?

Dockerfile是一個包含用於構建映象的命令的文字文件。可以使用在命令列中呼叫任何命令。 Docker通過讀取Dockerfile中的指令自動生成映象。它們簡化了從頭到尾的流程並極大的簡化了部署工作。
Dockerfile 一般分為四部分:基礎映象資訊、維護者資訊、映象操作指令和容器啟動時執行指令,’#’ 為 Dockerfile 中的註釋。
Docker以從上到下的順序執行Dockerfile的指令。為了指定基本映像,第一條指令必須是FROM。一個宣告以#字元開頭則被視為註釋。可以在Docker檔案中使用RUN,CMD,FROM,EXPOSE,ENV等指令。
Dockerfile相關語法詳見

傳送門

二、手動構建映象

以Github倉庫go-web-form為例,在專案根目錄下建立Dockerfile,內容如下:

FROM golang:1.9
MAINTAINER liuyh73  "[email protected]"
# 該指令用於配置工作目錄,其引數應該使用絕對目錄。
WORKDIR $GOPATH/src/github.com/liuyh73/go-web-form
# ADD不但支援將本地檔案複製到容器中,還支援本地提取檔案和遠端url下載
# ADD <src> <dst>
ADD . $GOPATH/src/github.com/liuyh73/go-web-form
RUN go get github.com/gorilla/mux
RUN go get github.com/codegangsta/negroni
RUN go get github.com/unrolled/render
RUN go get github.com/spf13/pflag
RUN go build .
# 該指令指示容器講監聽連結的埠,類似於,將容器中的某一個埠暴露出去,從而在外部訪問繫結該埠。 EXPOSE 8080 # ENTRYPOINT允許你配置作為可執行檔案執行的容器 ENTRYPOINT ["./go-web-form"]

然後使用docker命令構建映象:

$ sudo docker build .

如果尚未安裝docker,請點選這裡

三、自動構建映象

I、連線設定

使用者Github和Docker Hub賬號,登入Docker Hub:
選擇Profile > Settings > Linked Accounts & Services
按照提示關聯GitHub賬戶:
在這裡插入圖片描述


在這裡插入圖片描述
然後選擇Github建立連線即可:
在這裡插入圖片描述

II、建立自動連線

自動構建倉庫依靠與程式碼倉庫的整合來構建。也可以使用 docker push 命令將已構建的映象推送到倉庫。

  • 1.選擇Created> Create Automated Build
    選擇Github
    在這裡插入圖片描述
  • 2.選擇倉庫(在此選擇go-web-form)
    在這裡插入圖片描述
  • 3.建立映象倉庫
    在這裡插入圖片描述
  • 4.Github該專案倉庫中出現Docker整合
    在這裡插入圖片描述
  • 5.觸發構建映象(點選Trigger)
    在這裡插入圖片描述
    在這裡插入圖片描述
  • 6.構建成功
    在這裡插入圖片描述

III、構建過程及狀態

Docker通過讀取Dockerfile中的指令自動生成映像。
通過檢視 Build Details 頁面,可以檢視特定倉庫的構建狀態。如果有正在排隊或正在進行的構建,則可以單擊 Cancel 來取消構建。狀態有:
Queued:排隊等待構建映象。佇列時間取決於你可以使用的併發構建數量。
Building:正在構建映象。
Success:映象構建成功,沒有問題。
Error: 映象出了問題。點選對應行進入 Builds Details 頁面。頁面頂部的 banner 顯示日誌檔案的最後一句話,指明錯誤是什麼。如果需要更多資訊,滾動至螢幕底部的日誌部分。
【參考連結】
GitHub+Docker Hub實現自動構建映象