第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Docker 容器上運(yùn)行 golang web 應(yīng)用程序

如何在 Docker 容器上運(yùn)行 golang web 應(yīng)用程序

Go
幕布斯7119047 2023-05-15 10:05:08
我有一個(gè)使用 go 語(yǔ)言作為后端的網(wǎng)絡(luò)應(yīng)用程序。當(dāng)我運(yùn)行我的網(wǎng)站時(shí),我只是這樣做go build; ./projectName,然后它將在本地服務(wù)器端口 8000 上運(yùn)行。如何在容器上運(yùn)行此 Web 應(yīng)用程序?我可以在容器上運(yùn)行像 nginx 這樣的示例圖像,但是如何為我的項(xiàng)目創(chuàng)建我自己的圖像。我使用以下代碼在我的項(xiàng)目文件夾中創(chuàng)建了一個(gè) Dockerfile:FROM nginx:latest WORKDIR static/html/ COPY . /usr/src/app然后使用 Dockerfile 制作圖像,但是當(dāng)我在容器上運(yùn)行它并轉(zhuǎn)到 localhost:myPort/static/html/page.html 時(shí),它說(shuō)找不到 404 頁(yè)面。我的另一個(gè)問(wèn)題是,docker 是否只能在容器上運(yùn)行靜態(tài)頁(yè)面?因?yàn)槲业恼军c(diǎn)可以接收和發(fā)送數(shù)據(jù)。謝謝這是我的 docker 文件(./todo 是我的項(xiàng)目名稱(chēng)和文件夾名稱(chēng))這是我的終端(你可以看到容器立即退出)
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是我為我的 Golang 網(wǎng)絡(luò)應(yīng)用程序使用框架所做的Gin-gonic- 我的 Dockerfile:


FROM golang:latest

# Author

MAINTAINER dangminhtruong

# Create working folder

RUN mkdir /app

COPY . /app

RUN apt -y update && apt -y install git

RUN go get github.com/go-sql-driver/mysql

RUN go get github.com/gosimple/slug

RUN go get github.com/gin-gonic/gin

RUN go get gopkg.in/russross/blackfriday.v2

RUN go get github.com/gin-gonic/contrib/sessions

WORKDIR /app 

然后構(gòu)建docker鏡像


docker build -t web-app:latest .


最后,啟動(dòng)我的網(wǎng)絡(luò)應(yīng)用程序


docker run -it -p 80:8080 -d web-app:latest go run main.go //My webapp start at 8080 port


希望這有幫助


查看完整回答
反對(duì) 回復(fù) 2023-05-15
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

我猜你沒(méi)有在容器外暴露 Docker 端口。這就是為什么您看不到任何輸出而不僅僅是特定于 GO 程序的原因。嘗試將以下行添加到您的 docker compose 文件中


EXPOSE 80(whichever port you want it to be)

EXPOSE 443

EXPOSE 3306

這將使容器可以從外部訪問(wèn)


查看完整回答
反對(duì) 回復(fù) 2023-05-15
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

  1. 你不需要 Nginx 在 Go 中運(yùn)行服務(wù)器

  2. 最好在 Dockerfile 中構(gòu)建一個(gè)二進(jìn)制文件

您的 Dockerfile 可能如下所示:

FROM golang:latest 

RUN mkdir /app 

ADD . /app/ 

WORKDIR /app 

RUN go build -o main .

EXPOSE 8000

CMD ["/app/main"]


查看完整回答
反對(duì) 回復(fù) 2023-05-15
  • 3 回答
  • 0 關(guān)注
  • 187 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)