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

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

無(wú)法讓 Docker 容器在顯示“連接重置”的本地主機(jī)上運(yùn)行?

無(wú)法讓 Docker 容器在顯示“連接重置”的本地主機(jī)上運(yùn)行?

Go
回首憶惘然 2022-04-26 14:45:33
無(wú)法讓 Docker 容器在 localhost 上運(yùn)行,它在訪問(wèn) localhost:8080 時(shí)顯示“連接重置”。以下是我所知道的,請(qǐng)耐心等待:代碼在我運(yùn)行時(shí)在本地運(yùn)行,我可以看到http://localhost:8080頁(yè)面Docker 構(gòu)建命令完成且沒(méi)有錯(cuò)誤卷曲服務(wù)器時(shí)出錯(cuò):curl -X GET http://localhost:8080curl: (52) 來(lái)自服務(wù)器的空回復(fù)docker run -d -p 8080:8080 --name goserver -it goserverDockerfile: FROM golang:1.9.2 ENV SRC_DIR=/go/src/ ENV GOBIN=/go/bin WORKDIR $GOBIN # Add the source code: ADD . $SRC_DIR RUN cd /go/src/; RUN go get github.com/gorilla/mux; CMD ["go","run","main.go"] #ENTRYPOINT ["./main"] EXPOSE 8080這是go代碼:package mainimport (    "fmt"    "net/http"    "github.com/gorilla/mux")func main() {    r := mux.NewRouter()    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {        fmt.Fprintf(w, "<h1>This is the homepage. Try /hello and /hello/Sammy\n</h1>")    })    r.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {        fmt.Fprintf(w, "<h1>Hello from Docker!\n</h1>")    })    r.HandleFunc("/hello/{name}", func(w http.ResponseWriter, r *http.Request) {        vars := mux.Vars(r)        title := vars["name"]        fmt.Fprintf(w, "<h1>Hello, %s!\n</h1>", title)    })    http.ListenAndServe(":8080", r)}
查看完整描述

2 回答

?
猛跑小豬

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

您正在以分離 ( -d) 模式啟動(dòng)圖像 - 這就是您看不到錯(cuò)誤消息的原因。的問(wèn)題很少Dockerfile,應(yīng)該使用@andre 答案修復(fù),但很可能您忘記重建圖像并且沒(méi)有看到效果。


我提交此答案是為了建議您對(duì)以下內(nèi)容進(jìn)行一些改進(jìn)Dockerfile:


# first stage - builds the binary from sources

FROM golang:1.12.14-alpine3.10 as build


# using build as current directory

WORKDIR /build


# Add the source code:

COPY main.go ./


# install build deps

RUN apk --update --no-cache add git


# downloading dependencies and

# building server binary

RUN go get github.com/gorilla/mux && \

  go build -o server .


# second stage - using minimal image to run the server

FROM alpine:3.10


# using /app as current directory

WORKDIR /app


# copy server binary from `build` layer

COPY --from=build /build/server server


# binary to run

CMD "/app/server"


EXPOSE 8080

我將您Dockerfile分為兩個(gè)階段:構(gòu)建和運(yùn)行。Build 階段負(fù)責(zé)構(gòu)建服務(wù)器二進(jìn)制文件,run 階段負(fù)責(zé)運(yùn)行它。請(qǐng)參閱https://docs.docker.com/develop/develop-images/multistage-build/

然后我將多個(gè)RUNs 合并為一個(gè):go get github.com/gorilla/mux && go build -o server .以避免創(chuàng)建冗余層。

我修復(fù)WORKDIR了 s 并賦予它們可讀的語(yǔ)義名稱。


不要忘記重建它docker build . -t goserver并運(yùn)行它


docker run -p 8080:8080 --name goserver goserver

如果一切正常,并且您已準(zhǔn)備好(并且需要)以分離模式啟動(dòng),則添加-d標(biāo)志。


此外,您可能需要檢查Dockerfile 最佳實(shí)踐。


查看完整回答
反對(duì) 回復(fù) 2022-04-26
?
繁花不似錦

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

你WORKDIR是錯(cuò)的,基于你如何設(shè)置你的CMD


改變你的WORKDIR,SRC_DIR而不是,GOBIN它會(huì)工作


你也可以go install main.go在你的 Dockerfile 上運(yùn)行


go install將創(chuàng)建可執(zhí)行文件并將其移動(dòng)到 bin 文件夾


這是一個(gè)工作 Dockerfile 的示例:


FROM golang:1


ENV SRC_DIR=/go/src/

ENV GOBIN=/go/bin


WORKDIR $SRC_DIR


# Add the source code:

ADD . $SRC_DIR


RUN go get github.com/gorilla/mux;

RUN go install main.go


WORKDIR $GOBIN

ENTRYPOINT ["./main"]


EXPOSE 8080

發(fā)生的事情是:您CMD失敗了,因?yàn)閃ORKDIR指向 bin 文件夾。


查看完整回答
反對(duì) 回復(fù) 2022-04-26
  • 2 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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