修正《用Docker快速搭建Go開發環境》文章中的一處錯誤

  • 2020 年 2 月 17 日
  • 筆記

上周寫的文章《五分鐘用Docker快速搭建Go開發環境》,文章發出去後有不少閱讀量,而且從後台看的數據 60%的人都讀完了。今天我自己用下面命令往 容器里的 Go 項目里下載包時發現了一處錯誤

docker-compose exec app go get ... 

原因是在容器里執行的路徑不對,容器的工作目錄沒有設置,所以還是默認的/go目錄,而非項目的根目錄。因為微信改文章限制很大,本來是想下個文章用到這個容器環境時再提,不過想着再發可能就差不多到周末了,期間有人按照我的文章自己搭環境出了問題也不太好。

問題出在文章的最後,使用docker-compose 管理容器時在編排文件疏忽了一個設置,下面把編排文件做下更正:

version: '3'  services:    app:      image: golang:latest      working_dir:/go/src/example.com/http_demo      volumes:        - $PWD:/go/src/examplecom/http_demo      ports:        - "8000:8080"      command: go run /go/src/example.com/http_demo/main.go

文件中增加了working_dir 配置,用於指定容器中的工作目錄:

working_dir:/go/src/examplecom/http_demo

這樣,在用 docker-compose exec 向容器中發送命令並執行的時候我們的 go test,go get 類的命令就能在項目的根目錄下執行了。

設置了working_dir後我們再使用:

docker exec -it <container name/id> bash

進入運行中的容器時,就會發現終端的工作目錄默認已經切換到我們設置的項目根目錄里了。

這個錯誤也是我的一時疏忽吧,如果有按照文章實踐的同學一定要看看這篇推送。本周會在《深入學習用Go編寫HTTP服務器》對HTTP服務繼續進行完善,現在已經正式開工寫BUG 了,所以推送可能要到周末了。

題圖是《塞爾達荒野之息》里的克洛格種子,整個世界地圖裡在犄角旮旯里藏着900 個呀哈哈,春節假期在家實在不知道幹什麼了我就滿世界找他們。