我在 docker 容器上以 headless 模式运行 puppeteer 来测试我们的网站。第一页是登录页面。 puppeteer 脚本和 docker 文件存储在内部 git repo 中。安全存储登录凭据的好方法是什么?
显然不是适合存储库中的文件。 Docker secrets 是一个选项,还有哪些其他选项?我需要 puppeteer 操纵者在没有任何用户干预的情况下阅读它们。
最佳答案
您可以将凭证作为环境变量传递给您的 docker 容器。以下行启动 docker 容器并将变量 LOGIN_USER
和 LOGIN_PASSWORD
从您的主机传递到您的 docker 环境。这样,您将它们指定为主机系统内的环境变量,但您确实在代码或存储库中指定了它们。
启动 Docker
docker run -e LOGIN_USER LOGIN_PASSWORD [...]
容器内部
在您的容器内,然后您通过访问 process.env.LOGIN_USER
和 process.env.LOGIN_PASSWORD
来使用变量,如下所示(使用 page.type
的示例):
page.type('#input-field', process.env.LOGIN_USER);
设置环境变量
设置环境变量有多个选项。您可以永久设置(如果您想运行多个 docker 容器)或仅针对单个命令。查看this answer on askubuntu获取更多信息。
关于javascript - 在 rocker 容器上运行的 puppeteer 的登录凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57514478/