亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該如何使用 CA.pem 文件為 golang proj 配置 Dockerfile?

我應該如何使用 CA.pem 文件為 golang proj 配置 Dockerfile?

Go
紅顏莎娜 2022-10-24 16:33:02
我有一個服務器項目。處理程序提供一些來自 postgres 數據庫的數據。對于連接,我有一個 CA.pem。當我在本地運行 main.go 時 - 它正在工作。CA.pem 位于 proj 文件夾中。它是這樣調用的:pem, err := ioutil.ReadFile("CA.pem")    if err != nil {        fmt.Fprintf(os.Stderr, "Failed to read the CA file:%s - %s", el, err)        return err    }    if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {        fmt.Fprint(os.Stderr, "Failed to append PEM")    }項目結構:├──project/    ├──main.go      ├──Dockerfile      ├──CA.pem     ├──go.mod      ├──...      ├──folder1/    |  ├─...    └──folder2/       └──...Dockerfile 看起來像:# syntax=docker/dockerfile:1## ## Build## FROM golang:1.17 AS buildWORKDIR /app/projCOPY go.mod .COPY go.sum .RUN go mod downloadCOPY . .RUN go build -o ./out/proj .#### Deploy##FROM gcr.io/distroless/base-debian10WORKDIR /COPY --from=build /app/proj/out/proj /app/projEXPOSE 8080ENTRYPOINT ["/app/proj"]因此,當我嘗試運行容器時,我收到此錯誤:無法讀取 CA 文件:太空船 - 打開 CA.pem:沒有這樣的文件或目錄 連接到數據庫交互期間出錯:打開 CA.pem:沒有這樣的文件或目錄*spaceship - 數據庫名稱 *databaseinteractions - 我有“connect_to_db.go”文件的文件夾。服務器正在運行。我專門創建了一個“狀態”處理程序,它為我提供 201 響應。沒關系。但是無法建立數據庫連接。它看不到 CA.pem 文件。但為什么?可能我應該以不同的方式創建 docker 圖像嗎?或者以不同的方式讀取文件?感謝您的任何幫助!
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

當您在本地運行程序查找CA.pem文件時。但是在 docker 中,您只在 debian 映像中保留項目的可執行構建。

您需要復制項目目錄中的 CA.pem 文件才能成功運行。

COPY --from=build /app/proj/CA.pem /app/proj


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號