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

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

如何在Go項目中將.env文件傳遞給docker鏡像?

如何在Go項目中將.env文件傳遞給docker鏡像?

Go
qq_笑_17 2022-08-01 18:51:20
我的Go項目heriarchy是這樣的:主要功能:func main() {    path, _ := os.Getwd()    err := godotenv.Load(filepath.Join(path, ".env"))    if err != nil {        log.Fatal("Error loading .env file")    }    server.Init()}這是我的文件內容:dockerFROM golang:alpine AS build-envLABEL MAINTAINER "Amit Pal <[email protected]>"ENV GOPATH /goWORKDIR /go/srcCOPY . /go/src/gothamcityRUN cd /go/src/gothamcity && go build .FROM alpineRUN apk update && apk add ca-certificates && rm -rf /var/cache/apk*WORKDIR /appCOPY --from=build-env /go/src/gothamcity/gothamcity /appEXPOSE 8080ENTRYPOINT [ "./gothamcity" ]我運行以下命令來構建并運行 docker 映像:docker build -t gcr.io/${PROJECT_ID}/gothamcity:v1.0 .docker run -ti gcr.io/miles-ee458/gothamcity:v1.0   我得到錯誤:2021/01/28 14:34:46 Error loading .env file我在這里做錯了什么?如何將 .env 文件傳遞給 docker 映像并執行它?另外,不是將整個項目復制到 Docker 映像嗎?COPY . /go/src/gothamcity
查看完整描述

1 回答

?
犯罪嫌疑人X

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

COPY . /go/src/gothamcity僅復制 .env 以構建容器。您必須將其顯式復制到主容器中,如下所示:


FROM golang:alpine AS build-env

LABEL MAINTAINER "Amit Pal <[email protected]>"

ENV GOPATH /go

WORKDIR /go/src

COPY . /go/src/gothamcity

RUN cd /go/src/gothamcity && go build .


FROM alpine

RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk*

WORKDIR /app

COPY --from=build-env /go/src/gothamcity/gothamcity /app

COPY .env /app


EXPOSE 8080


ENTRYPOINT [ "./gothamcity" ]

原因是,當你說“從高山”時,這變成了一個全新的空白容器。這就是多階段構建的工作方式。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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