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

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

如何編寫 dockerfile 以正確地從我的 github 中提取代碼

如何編寫 dockerfile 以正確地從我的 github 中提取代碼

Go
弒天下 2023-03-29 16:03:40
我正在用 Go 構建一個網站,該網站通過 docker 托管在我的家庭服務器上。我想做什么: 我在本地更改我的網站/服務器,然后將它們推送到 github。我想編寫一個 dockerfile,以便它從我的 github 中提取這些數據,構建圖像,然后我的 docker-compose 文件將使用它來創建容器。不幸的是,我所有的嘗試都有些接近但錯誤。FROM golang:1.8-onbuildMAINTAINER <my info>RUN go get <my github url>ENV webserver_path /website/ENV PATH $PATH: webserver_pathCOPY website/ .RUN go build .ENTRYPOINT ./websiteEXPOSE <ports>這個文件是我通過谷歌搜索找到的一些小指南的組合,但沒有一個能給我我需要的信息,而且它從來沒有奏效。我希望具有良好 docker 經驗的人可以將 Dockerfile 放在一起供我用作指南,以便我可以找到我做錯了什么?我認為我正在尋找的東西只需幾行就可以完成,而我的代碼比需要的要冗長一點。以下是額外但可能不必要的信息項目布局:數據:是我的 go 文件所在的位置旁注:這在嘗試構建圖像時引發了錯誤,關于不在環境路徑中的一些事情。不確定這是否有幫助靜態:CSS、JS、圖片TPL:轉到模板文件Main.go : 啟動服務器/網站
查看完整描述

3 回答

?
鳳凰求蠱

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

有幾種策略:

  • 使用預構建應用程序。go build根據目標系統架構和操作系統(例如使用 GOOS 和 GOARCH 系統變量)使用命令構建您的應用程序,然后使用 COPY docker 命令將此構建的文件(帶有資產和模板)移動到您的 WORKDIR,最后通過 CMD 或 ENTRYPOINT 運行它( 最后一個是可取的)。此示例的 Dockerfile 如下所示:

從頭開始

環境端口 8000 暴露 $PORT

COPY 降臨 / CMD ["/降臨"]

  • 通過 dockerfile 構建。典型的 Dockerfile:

# Start from a Debian image with the latest version of Go installed

# and a workspace (GOPATH) configured at /go.

FROM golang


# Copy the local package files to the container's workspace.

ADD . /go/src/github.com/golang/example/outyet


# Build the outyet command inside the container.

# (You may fetch or manage dependencies here,

# either manually or with a tool like "godep".)

RUN go install github.com/golang/example/outyet


# Run the outyet command by default when the container starts.

ENTRYPOINT /go/bin/outyet


# Document that the service listens on port 8080.

EXPOSE 8080

使用 GitHub。構建您的應用程序并將其拉到 dockerhub 作為準備使用的圖像。


查看完整回答
反對 回復 2023-03-29
?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

Github 支持Webhooks,當你推送到 git repo 時,它可以用來自動做各種事情。既然你已經在你的家庭機器上運行了一個網絡服務器,為什么你不讓 Github 在它收到提交時向它發送一個 POST 請求并讓master你的家庭機器重新下載 git repo 并從那里重新啟動網絡服務?



查看完整回答
反對 回復 2023-03-29
?
holdtom

TA貢獻1805條經驗 獲得超10個贊

我能夠通過通過 docker hub 創建自動構建并將其用于我的 dockerfile 來解決我的問題:

FROM golang-onbuild
EXPOSE <ports>

這不是我的問題的正確答案,但它是一種有效的解決方法。自動構建以我希望我的 dockerfile 的方式與我的 github 存儲庫連接。


查看完整回答
反對 回復 2023-03-29
  • 3 回答
  • 0 關注
  • 361 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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