golang app如何在aws服务器中使用docker与postgres交谈?

时间:2017-07-19 04:43:02

标签: postgresql amazon-web-services docker go

我有像这样的码头工具

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中我不会

配置此功能的好方法是什么?

1 个答案:

答案 0 :(得分:0)

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

如果是这样,你可以使用这样的环境变量:

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

只需将GO_ENV环境变量集production提供给AWS上的docker容器。