公司最近開發了一個項目是用golang 寫的,現在要部署到線上環境去,又不想在服務器上裝單獨的golang,決定用docker 封裝下,直接打到鏡像里面,然后就直接在hub.docker.com上面搜了下golang的鏡像,直接就docker pull golang 最新的是1.9的版本
然后參考官方的文檔弄了下Dockerfile大概是這樣:
FROM golang MAINTAINER jackluo #指定工作目錄 WORKDIR /go/src/ActivitApi COPY . . CMD ["/bin/bash", "build.sh"]
build.sh里面的代碼是這樣,大概就是進入目錄,編譯golang ,最后運行編譯好的server 文件
#!/usr/bin/env bash cd /go/src/ActivitApi/server && go build && ./server
其實可以直接運行編譯好的.server 文件,因為每次啟動的時候,它才去編譯,可能啟個服務,需要幾秒鍾的時間,我們寫的大概編譯再啟動需要10秒左右的時間
最后啟用docker
#!/usr/bin/env bash docker stop apihdtest docker rm apihdtest docker run -d --name apihdtest \ -p 17071:17071 \ --link mysql:mysql.io \ --link redis:redis.io \ -v $(pwd):/go/src/ActivitApi \ activityapi #docker exec -it apihdtest /bin/bash /go/src/ActivitApi/build.sh
然后這個就啟起來了
最后,我們看下完整的截圖吧
僅參考.