【问题标题】:Connecting to external MySQL DB in Docker [duplicate]在 Docker 中连接到外部 MySQL DB [重复]
【发布时间】:2021-08-14 11:05:05
【问题描述】:

我使用 Golang 制作了一个 REST API,它连接到本地安装的 MySQL Workbench 上的 MySQL DB,现在我希望将此 API dockerise,但是如何连接到 Docker-Compose 中的外部 DB? 我是 docker 新手,所以对事情一无所知。

func dbConnection() (db *sql.DB) {
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testDB")
    if err != nil {
        panic(err)
    }
    return db
} 

【问题讨论】:

    标签: mysql docker go docker-compose dockerfile


    【解决方案1】:

    您必须使用 docker.host 更改 localhost,正如我在此处 https://stackoverflow.com/a/61001152/418599 解释的那样。

    换句话说,您应该编写一个 docker build 脚本,通过以下方式设置环境变量:

    IP_ADDRESS=$(ip addr show | grep "\binet\b.*\bdocker0\b" | awk '{print $2}' | cut -d '/' -f 1)
    

    然后使用 docker-compse 构建通过上述 ip 地址的镜像如下:

    extra_hosts:
      docker.host: ${IP_ADDRESS}
    

    最后在你的 GO 源中使用 IP_ADDRESS 环境变量代替 localhost

    【讨论】:

      猜你喜欢
      • 2021-04-25
      • 1970-01-01
      • 2021-10-19
      • 2013-12-09
      • 2011-10-03
      • 2015-01-05
      • 1970-01-01
      • 2021-10-28
      • 2019-08-02
      相关资源
      最近更新 更多