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
希望這有幫助

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)

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
你不需要 Nginx 在 Go 中運(yùn)行服務(wù)器
最好在 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"]
- 3 回答
- 0 關(guān)注
- 187 瀏覽
添加回答
舉報(bào)