2 回答

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊
Docker compose 執(zhí)行 DNS 解析。您應(yīng)該能夠按名稱(chēng)訪問(wèn)數(shù)據(jù)庫(kù)。
刪除:
environment:
HOST: db
將后滯端口更正為 5432:
db:
...
ports:
- 5432:5432
您必須能夠像這樣連接:
db := pg.Connect(&pg.Options{
Addr: "db:5432",
User: "gorm",
Database: "gorm",
Password: "gorm",
})
至于環(huán)境變量,您可以像這樣聲明和訪問(wèn)它們:
backend:
environment:
POSTGRES_USER: gorm
...
os.Getenv("POSTGRES_USER")

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
Docker 撰寫(xiě)將為您的容器創(chuàng)建一個(gè)網(wǎng)絡(luò),它們可以在其中相互通信和訪問(wèn)。
您可以通過(guò)向服務(wù)添加一個(gè)名稱(chēng)來(lái)對(duì) Docker 撰寫(xiě)文件進(jìn)行簡(jiǎn)單的更改,這將確保它們每次都獲得相同的名稱(chēng)。
version: "3.7"
services:
backend:
image: golang:1.16
build: ./
container_name: backend
working_dir: /app
volumes:
- ./backend/:/app
command: go run main.go
ports:
- "8080:8080"
depends_on:
- db
db:
image: postgres
restart: always
container_name: db
environment:
POSTGRES_USER: gorm
POSTGRES_PASSWORD: gorm
POSTGRES_DB: gorm
ports:
- "9920:5432"
Postgres的默認(rèn)端口是5432,所以我將其映射到您的9920。然后,您可以通過(guò)指定以下內(nèi)容從后端容器訪問(wèn)數(shù)據(jù)庫(kù)容器:
db:9920
- 2 回答
- 0 關(guān)注
- 115 瀏覽
添加回答
舉報(bào)