介紹
使用Docker開發Golang云原生應用程序,使用Golang服務和Redis服務
注:寫得很詳細 為方便我的朋友可以看懂
環境部署
確保已經安裝Go
、docker
等基礎配置
官網下載鏈接直達:Docker官網下載 ?? ??? ?Go官網下載
操作步驟
第一步 創建一個Go應用程序
- 創建新Go工程,編輯main.go文件內容如下:
package mainimport ("fmt""log""net/http""github.com/go-redis/redis/v8""context"
)var ctx = context.Background()func main() {// 設置Redis客戶端client := redis.NewClient(&redis.Options{Addr: "redis:6379", // 使用Docker服務名作為地址})// 確認Redis連接_, err := client.Ping(ctx).Result()if err != nil {log.Fatalf("Could not connect to Redis: %v", err)}// 設置HTTP服務器http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {// 嘗試從Redis獲取值val, err := client.Get(ctx, "counter").Result()if err == redis.Nil {val = "0"_, err := client.Set(ctx, "counter", "1", 0).Result()if err != nil {fmt.Fprintf(w, "Error setting value in Redis: %v", err)return}} else if err != nil {fmt.Fprintf(w, "Error getting value from Redis: %v", err)return} else {// 增加計數器newVal, err := client.Incr(ctx, "counter").Result()if err != nil {fmt.Fprintf(w, "Error incrementing value in Redis: %v", err)return}val = fmt.Sprintf("%d", newVal)}fmt.Fprintf(w, "Counter value is: %s", val)})// 啟動HTTP服務器log.Fatal(http.ListenAndServe(":8080", nil))
}
第二步 使用Docker編排Go應用程序和Redis服務
-
創建
Dockerfile
文件(無文件后綴名)如圖:
-
然后編輯該文件:
FROM golang:1.16WORKDIR /appCOPY go.mod .
COPY go.sum .
RUN go mod downloadCOPY *.go .RUN go build -o /hello-redisEXPOSE 8080CMD [ "/hello-redis" ]
第三步 初始化Go模塊
繼續在Terminal編輯(確保還是在這個go程序的路徑):
go mod init hello-redis
go mod tidy
第四步 創建并編輯docker-compose.yml文件
在文件夾下創建文件,添加內容如下:
version: '3'
services:app:build: .ports:- "8080:8080"depends_on:- redisredis:image: "redis:alpine"
第五步 構建和運行應用程序
繼續在Terminal上輸入代碼:
docker-compose up --build
此時將會試圖構建Go應用程序和Redis服務,并啟動它們,在這個過程中需要等待Docker下載相應的依賴配置。
第六步 測試應用程序
使用curl
訪問http://localhost:8082
輸入代碼:
curl http://localhost:8080
這個時候會打開瀏覽器并訪問http://localhost:8080,頁面上會顯示計數值
附錄
比較快一點的編輯文件的方法就是使用Terminal
具體的步驟如下:(一個小案例:創建Dockerfile文件并編輯)
1. 切換到工作目錄
在工作目錄上右擊打開Terminal
或者直接打開Terminal 然后輸入代碼切換到工作目錄
cd Go應用程序的路徑
忘記路徑的時候 如何查看Go應用程序的工作路徑
右擊
go文件夾,點擊get info
以下信息就是go文件夾的位置
2. 創建文件
輸入代碼:
vim Dockerfile
3. 編輯文件,保存并退出
復制粘貼前文代碼
復制粘貼好之后,直接輸入代碼,回車即可退出:
注意一定要是英文輸入法
:wq!