javascript - 在 rocker 容器上运行的 puppeteer 的登录凭据

标签 javascript node.js docker puppeteer

我在 docker 容器上以 headless 模式运行 puppeteer 来测试我们的网站。第一页是登录页面。 puppeteer 脚本和 docker 文件存储在内部 git repo 中。安全存储登录凭据的好方法是什么?

显然不是适合存储库中的文件。 Docker secrets 是一个选项,还有哪些其他选项?我需要 puppeteer 操纵者在没有任何用户干预的情况下阅读它们。

最佳答案

您可以将凭证作为环境变量传递给您的 docker 容器。以下行启动 docker 容器并将变量 LOGIN_USERLOGIN_PASSWORD 从您的主机传递到您的 docker 环境。这样,您将它们指定为主机系统内的环境变量,但您确实在代码或存储库中指定了它们。

启动 Docker

docker run -e LOGIN_USER LOGIN_PASSWORD [...]

容器内部

在您的容器内,然后您通过访问 process.env.LOGIN_USERprocess.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/

相关文章:

javascript - CKEditor 中的自定义模板

node.js - 使用 Passport.js 部分保护 API 端点

node.js - 如何使用socketcluster实现socketchannel

mysql - Node.js promise 和错误处理。这不能做得更干净吗?

docker - 无法从 Jenkins 访问Docker Daemon

javascript - 哪个逻辑运算符优先

javascript - 从相邻的表行获取值

docker - 使用Docker Compose运行多个GlassFish

azure - 如何在应用服务容器中安装 SSH

javascript - 如何在 JS (ES6) 中获取带点格式字符串的嵌套对象