繁体   English   中英

Golang应用程序如何在AWS服务器上使用Docker与Postgres对话?

[英]How does golang app talk to postgres using docker in aws servers?

我有一个这样的码头工人实例

docker run --name my-db-name -e POSTGRES_PASSWORD=mysecretpassword -d postgres:latest

在服务器上运行

我的golang应用程序由运行在同一服务器上的docker包装

func main() {
    db, _ := sql.Open("postgres", "postgres://postgres:@192.168.99.100:5432/postgres?sslmode=disable")

    http.HandleFunc("/test", handler)
    http.ListenAndServe(":8080", nil)
}

上面的方法不起作用,因为ip不正确。

由于我使用的是Mac,因此需要使用docker machine ip连接到docker postgres db,但是在AWS中我不需要

什么是配置此内容的好方法?

您是否在问如何为本地开发和AWS配置不同的环境?

如果是这样,则可以使用如下环境变量:

env := os.Getenv("GO_ENV")
dbIP := "DOCKER_MACHINE_IP"
if env == "production" {
    dbIP = "AWS_POSTGRES_IP"
}

只需将设置为productionGO_ENV环境变量提供给GO_ENV容器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM