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

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

使用 docker compose up 的 Golang 項目和 postgres 圖像不會失敗

使用 docker compose up 的 Golang 項目和 postgres 圖像不會失敗

Go
月關寶盒 2023-02-06 10:36:47
不確定我在這里做錯了什么。我正在嘗試使用持久數(shù)據(jù)庫創(chuàng)建一個 golang/postgres dockerized 項目。以下是文件。當我運行時go run main.go,curl http://localhost:8081/我得到了預期的輸出,但是當我嘗試這個時docker compose up我遇到了問題,但一切似乎都在工作,因為我沒有看到任何錯誤消息postgres-1  | 2022-08-29 05:31:59.703 UTC [1] LOG:  database system is ready to accept connections,但是當我嘗試時curl http://localhost:8081/我遇到了錯誤curl: (56) Recv failure: Connection reset by peer。我嘗試完全刪除 postgres 部分,但我仍然遇到同樣的問題。我可以看到 docker 已啟動并正在運行并且端口正在偵聽sudo lsof -i -P -n | grep 8081docker-pr 592069            root    4u  IPv4 1760430      0t0  TCP *:8081 (LISTEN)我在 Ubuntu 22.04 上使用它主要去:package mainimport (    "fmt"    "log"    "net/http")func main() {    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {        fmt.Fprintf(w, "this can be anything")    })    http.HandleFunc("/try-it", func(w http.ResponseWriter, r *http.Request) {        fmt.Fprintf(w, "it worked!")    })    log.Fatal(http.ListenAndServe(":8081", nil))}文件:FROM golang:1.19-alpine3.16WORKDIR /appCOPY go.mod ./RUN go mod downloadCOPY . .RUN go build -o main .RUN go build -v -o /usr/local/bin/app ./...EXPOSE 8081CMD [ "./main" ]docker-compose.yml:version: '3.9'services:  api:    restart: unless-stopped    build:      context: .      dockerfile: Dockerfile    ports:      - "8081:8080"    depends_on:      - postgres    networks:      - backend  postgres:    image: postgres    restart: unless-stopped    ports:      - "5001:5432"    volumes:      - psqlVolume:/var/lib/postgresql/data    environment:      - POSTGRES_USER=${POSTGRES_USER}      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}      - POSTGRES_DB=${POSTGRES_DB}    networks:      - backendnetworks:  backend:volumes:  psqlVolume:
查看完整描述

1 回答

?
翻閱古今

TA貢獻1780條經(jīng)驗 獲得超5個贊

docker 容器已啟動并正在運行,但需要在容器和應用程序中映射端口。例如在 main.gohttp.ListenAndServe(":8084", nil)中,應用程序中的這個方法需要映射到容器端口(在本例中:8084)


version: '3.9'

services:

  api:

    image: api

    restart: unless-stopped

    build:

      context: .

      dockerfile: Dockerfile

    ports:

      - "8083:8084" #host_port:container_port

可以在 docker 正在偵聽的主機端口上發(fā)出 curl 請求(在本例中為:8083)。例如curl http://localhost:8083/。這將向主機發(fā)出請求,該請求將被偵聽端口的 docker 捕獲,:8083然后將請求傳輸?shù)秸趥陕牭娜萜鳎?8084如docker-compose.yml. 如果端口映射不正確,則 curl 將返回curl: (56) Recv failure: Connection reset by peer。感謝您的學習經(jīng)驗,感謝您的所有幫助。


查看完整回答
反對 回復 2023-02-06
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號