簡體   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