如何在 golang dockertest.resource 中使用 docker secret/environment 变量而不是硬编码密码

How to use docker secret/environment variable in golang dockertest.resource instead of hardcoded password

我们使用以下代码对与数据库系统对话的服务进行单元测试。

https://sergiocarracedo.es/integration-tests-in-golang-with-dockertest/

MySQL root 密码在特定行中被硬编码并造成安全问题。有什么办法可以将其作为环境变量或 docker 秘密传递吗?

资源,错误 := pool.Run("mysql", "5.7", []string{"MYSQL_ROOT_PASSWORD=secret"})

可以使用环境变量。

  1. 首先,通过代码中的os.Getenv()获取环境变量
mysqlPwd := os.Getenv("MYSQL_ROOT_PASSWORD")
  1. 然后 运行 带有 -e 选项的 docker
docker run -e MYSQL_ROOT_PASSWORD=secret