# 使用Docker 執行 GoLang 程式 ###### tags: `GoLang` `Docker` ## 學習目標 可透過docker產生Golang的image並執行。 ## 目錄 [TOC] # 實作步驟 ## 專案建立 專案這部分可以使用我在[GitHub](https://github.com/franksu129/play-go/tree/main/GoAPI)上面的測試專案即可,此專案是用GoLang寫RestfulAPI針對資料進行CRUD的操作。 ## DockerImage 建立 為了要產生Docker Image這邊需要建立dockerfile來操作,這邊直接附上腳本: ```dockerfile= FROM golang RUN mkdir -p /app WORKDIR /app COPY . . RUN go mod download && go build -o app ENTRYPOINT ["./app"] ``` 大約簡單說明一下dockerfile相關參數 * FROM : Base Image 可以想成當作基底執行程式的映象檔 * RUN : 可執**命令**或者**執行檔** * WORKDIR : 指定工作目錄 * COPY : 將程式複製到容器內 * ENTRYPOINT : 與RUN概念相同,可執**命令**或者**執行檔** 有興趣了解dockerfile的其它參數的可參考[官網](https://docs.docker.com/engine/reference/builder/#usage) 腳本完成後直接在該目錄下使用指令建立image ```shell= docker build -t golangapi . ``` 完成之後使用指令 ```shell= dokcer images ``` 可以看到產出映像檔結果  # 運行程式 變成DockerImage之後要運行程式就變成了十分容易,直接透過指令運行即可 ```shell= docker run --rm -d -p 8080:8080 golangapi ``` 透過相關指令可以查看運行狀況 ```shell= docker ps docker logs <CONTAINER ID> ```  # 測試服務 完成後如果是使用提供專案的程式碼可以呼叫 **http://localhost:8080/todos** 即可取得執行結果  <br/> --- 相關參考來源: [Day 25 | 使用 Docker 封裝與運行 Go 程式(一)](https://ithelp.ithome.com.tw/articles/10240352) <style> .red{color: red;} </style>
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up