问题标签 [docker-secrets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - 如何在运行时将敏感数据发送到 docker 容器
我正在尝试将 API 自动化存储库容器化以在 ci/cd(gocd) 上运行它。下面是Dockerfile
内容。
下面是api_tests.conf
配置文件的内容。
api_tests.conf
是配置文件,它包含敏感数据,如 API 密钥、令牌等(注意:配置文件未加密)。目前我正在将此配置从 repo 复制到/usr/.ops/config/api_tests.conf
容器中的以下位置,但我不想这样做,因为存在安全问题。那么api_tests.conf
当我从 ci/cd 机器运行容器时如何复制这个文件(这意味着,从 Dockerfile,我需要删除指令COPY api_tests.conf /usr/.ops/config/api_tests.conf
)。
我的第二个问题是,如果我使用命令创建一个秘密文件docker secret create my_secret file_path
,我如何api_tests.conf
在运行容器时复制这个秘密文件。
注意:将api_tests.conf
文件复制到容器后,我需要运行命令“pytest -s -v --cache-clear --html=report.html”
请提供您的意见。
docker - Docker swarm:从配置中声明一个环境文件
我正在使用撰写文件来声明我的堆栈。
在我的撰写文件中,我有几个服务和配置:
我想要一个解决方法来重新使用我的配置文件“ myEnvFile.list ”作为我的服务的 env 文件。
注意:我不想通过,因为它建议我通过将文件集中在“配置”env_file
中来获取我想要避开的服务器的每个服务器下的文件
建议?
docker - Docker & MySQL:使用 docker-compose 文件不会创建任何秘密
我的 Docker 容器在运行时不断重启docker-compose up -d
。使用 检查日志时docker logs --tail 50 --follow --timestamps db
,出现以下错误:
/usr/local/bin/docker-entrypoint.sh: line 37: "/run/secrets/db_mysql_root_pw": No such file or directory
这可能意味着没有秘密。的输出docker secret ls
也没有给出任何秘密。
我的 docker-compose.yml 文件看起来像这样(不包括端口信息等):
在同一目录中,我有 3 个文本文件,其中仅包含环境变量的值。例如db_mysql_user_pw.txt
包含password
.
我在 Windows 主机上运行 Linux 容器。
azure - 将 docker 机密传递给 azure Web 应用程序时出错'没有这样的文件或目录:'/run/secrets/'
我对 Docker 比较陌生,目前正在构建一个多容器 dockerized azure web 应用程序(在烧瓶中)。但是,我在秘密管理方面遇到了一些困难。我已经成功构建了一个通过环境变量存储应用程序机密的版本。但根据最近的一些阅读,我注意到这不是一个好主意。我一直在尝试更新我的应用程序以使用 Docker Secrets,但没有运气。
我已经根据这篇文章成功创建了秘密:
您如何使用 docker-compose v3.1 管理秘密值?
我已经部署了堆栈并验证了秘密在 /run/secrets/ 中的两个容器中都可用。但是,当我在 azure 中运行应用程序时出现错误。
以下是我在 azure 中启动应用程序所采取的步骤。
接下来我将重新启动 azure web 应用程序以提取最新图像
docker-compose 的基本结构如下。
但是,当我在 azure 中运行应用程序时,我得到:
没有这样的文件或目录:'/run/secrets/ my_external_secret
我可以将外壳附加到容器并成功运行:
但是,当 webapp 执行上述行时,它会失败并出现无文件或目录错误。任何帮助将不胜感激。
windows - 从 Windows 容器中的应用程序访问 Docker 机密
我们在 Windows Server 2019 上运行 Docker Enterprise 18.09.8。我们的应用程序是使用 Express 构建的,并在 swarm 的 Docker 容器中作为服务运行。我们的图像需要很小,所以它们是在 Windows nano 上构建的,这意味着没有 Powershell。我们有一个我们正在使用的服务的 API 密钥,应该保密,因此我们计划使用 Docker 机密来使该 API 密钥可用于应用程序。
不幸的是,应用程序无法读取 Docker 机密。如果我使用:
我可以看到有一些东西存在于:
但我看不懂。如果我改用:
我可以输入文件的内容。
问题的核心似乎来自使用 Docker 机密管理敏感数据 - Windows 支持:
创建使用 Windows 容器的服务时,机密不支持指定 UID、GID 和模式的选项。目前,只有在容器内具有系统访问权限的管理员和用户才能访问机密。
如果不以提升的权限运行,我的应用程序是否无法访问机密内容?
docker - 在容器内创建 docker 机密
我的容器需要存储它通过用户提供的另一个服务接收到的数据库凭据。由于凭据将由用户提供一次,因此容器需要保留这些详细信息,以便它可以重新启动并能够连接到 db。
有没有一种方法可以在运行时从容器内部创建 docker secret 并在每次容器重新启动时使用它们?
docker - Docker /run/secrets is not mount
I'm trying to provide credentials via secrets. I defined them:
... and I used them in docker-compose.yml
file:
docker-compose up
comamnd returns:
As you can see there is no secrets directory
. Why? What did I miss?
Docker version is 19.03.3.
Docker Compose version is 1.14.1.
c# - 使用 docker compose 时如何修复“设置 DOTNET_USER_SECRETS_FALLBACK_DIR”错误?
我正在使用 docker-compose 来运行我的 asp.net api 应用程序。当我使用命令“docker-compose up”时,我收到错误:
在我的 yml 文件中,我有:
您可以在底部看到我添加了环境变量并像错误描述的那样定义了它。我确保该文件夹存在。但是,我仍然收到此错误。我究竟做错了什么?
docker - 从 gitlab 获取凭据到 Spring Boot 应用程序的最佳实践
我有一个项目,我在其中使用了以下技术mysql spring boot(包括spring jdbc模板)docker kubernetes gitlab(ci/cd)。
根据 Spring Boot 标准,我将数据库凭据作为环境变量传递。这些凭据显然需要安全、不受源代码影响,并且因地区而异,因此我想让它们尽可能远离应用程序(如果可能的话,我想将它们存储为 gitlab 机密) . 截至目前,我可以成功地将它们作为环境变量从我的 yaml 文件中传递,该文件定义了我的 kubernetes 部署和服务,它被我的 Dockerfile 拾取并传递给我的 Spring Boot 应用程序。有什么方法可以从 gitlab 传递到 kubernetes(避免 kubectl 运行,这是不好的做法并且将被弃用)?
谢谢,康纳
kubernetes - 在 Airflow 中将 kubernetes secret 与 GKEPodOperator 一起使用
我正在尝试将 GOOGLE_APPLICATION_CREDENTIALS 机密与 GKEPodOperator 一起使用。基本上我想: 1. 将秘密上传到 GKE 2. 将秘密挂载(?)到容器 3. 运行容器时使用秘密。
到目前为止,我已经在构建时将 key.json 文件添加到我的图像中,我知道这不是正确的方法。
我发现了这个问题:How to set GOOGLE_APPLICATION_CREDENTIALS on GKE running through Kubernetes
不同之处在于他们没有使用 GKEPodOperator。
我做了什么:1.使用以下方法创建了秘密:
kubectl create secret generic mysupersecret --from-file=service_account_key=key.json
我看到有volumes
和volume_mounts
参数,但我不明白如何使用它们。
任何人都可以帮我解决这个问题吗?也许我要做一些愚蠢的事情..