我尝试用 Go 初始化一个数据库。
我在 postgres:alpine 使用端口 5433,因为 5432 已被另一个微服务应用程序占用。
func Init() {
DB, err = gorm.Open(postgres.New(postgres.Config{
DSN: "host=url_db user=gorm password=gorm dbname=gorm port=5433 sslmode=disable TimeZone=Asia/Tokyo",
}), &gorm.Config{})
if err != nil {
panic(err)
}
autoMigration()
}
url_db:
build:
context: ./api/services/url/db
dockerfile: Dockerfile
container_name: "url_db"
environment:
POSTGRES_USER: gorm
POSTGRES_PASSWORD: gorm
POSTGRES_DB: gorm
POSTGRES_HOST: url_db
ports:
- 5433:5433
您可以确认这里只暴露了 5432 。
我试图通过像这样创建一个新的 Dockerfile 来公开 5433。
FROM postgres:alpine
EXPOSE 5433
但我得到了这个错误。
failed to initialize database, got error failed to connect to `host=url_db user=gorm database=gorm`: dial error (dial tcp 172.19.0.3:5433: connect: connection refused)
这条评论:
除非 postgres 实际配置为侦听该端口,否则仅在 docker 映像上公开端口不会做任何事情。– 超级 5 分钟前
这教我标题(如何在 postgres:alpine 图像上公开一个新端口(不是 5432)?)不是重点,所以我更新了标题。
如何让 postgres 监听容器的新暴露端口(不是 5432)?
偶然的你
回首忆惘然
潇潇雨雨
相关分类