问题标签 [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.
python - Docker - 让我的应用程序使用秘密而不是环境。变量
我的 Django 应用程序使用了很多环境变量,总共大约 35 个。目前,所有这些都由我在启动应用程序堆栈之前获取的 .env 文件处理。我想我不必指出这是一种非常不安全的方式,特别是如果它是关于生产中的密钥的......
现在我的问题是我真的不明白如何从 .env 文件切换到秘密,因为我不明白如何在我的容器中处理秘密。例如,Django 使用连接字符串连接我的 MySQL 数据库,见下图:
大多数时候,我使用“env.str”来获取我在启动时传递给容器的变量。那么如何使我的 Django 应用程序与 docker secrets 一起工作,并且如果可能的话,继续以如上所示的方式获取变量?是否可以在我的 docker-entrypoint.sh 开始时加载所有需要的变量,如果可以,如何实现?
我已经找到了这个解决方案:
在启动时触发以使我的环境变量就位是否有意义?见:https ://github.com/grafana/grafana-docker/issues/149
谢谢阅读
docker - Docker:用 docker-compose 中的秘密替换文件内容
我正在尝试使用 docker 和 docker-compose 设置具有模式和一些用户的数据库。用户是 Web 应用程序的系统用户,它需要密码以确保安全。为此,我想我可以简单地将文件中的模板值替换为密钥中的值。但是,这不起作用。
用秘密值替换文件内容的正确方法是什么?
Dockerfile
码头工人撰写
输出是:
docker - 无法访问主管、Docker 和 Swarm 机密
我正在努力用 docker、symfony、教义和 swarm secrets 来成为工作主管。
在我的 Dockerfile 中,我正在这样做:
所以我启动了如下所示的主管:
我的主要程序:
它以入口点启动 PHP。在这个入口点,我只在 prod 中使用 swarm secret:
在入口点内,命令 bin/console 运行良好。如果我处于开发模式,它会使用我的 .env 文件中的本地 database_url,如果我处于生产模式,它会使用 docker compose 中定义的秘密。
当我在主管中有第二个程序时会出现问题,如下所示:
和 launch.sh :
在这里它失败了一个看起来像这样的 Doctrine 错误:
实际上,'myname' 是我的 database_url dsn(用于学说)的 .env(用于开发环境)中的默认值。
这个主管问题与我不能自己执行教条命令的事实有关。我的意思是当我跑步时:
连接到我的容器,在容器内部之后我想执行如下操作:
它也不起作用(与主管相同的错误)。
总而言之, docker swarm secrets 在我自己或主管执行时不会“计算”,他们正在读取 .env 中的默认值,而不是读取 swarm secret 中的值......我不知道如何解决这个问题。我试图添加到 docker exec -e DATABASE_URL=/run/secrets/doctrine_dsn 但它也不起作用(除非我给出秘密原则 dsn 的真实值)。
任何帮助都会非常感谢
docker - 带有传递参数的 Dockerfile RUN 命令
我正在尝试将参数传递给 docker build 以使其在 Dockerfile 中执行为
但这会在构建期间失败,因为
但是当我直接在RUN
命令中使用它时
那可行。
有什么想法吗?
spring-boot - 如何使用 docker secret 设置属性 spring.cloud.config.server.git.password
我想 dockerize 我的 spring 云配置服务器应用程序。我正在创建一个 docker secretgit-repo-pass
来存储 github 帐户密码。我正在SPRING_CLOUD_CONFIG_SERVER_GIT_PASSWORD
使用 docker 机密的默认路径设置环境,即/run/secrets/git-repo-pass
. 但是,当我运行 compose 并检查容器时,我看到环境实际上是设置为路径而不是该路径的内容。
在下面分享我的 docker-compose.yml 文件,
抛出异常:
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot load environment] with root cause
如果有办法使用 docker secrets 加载应用程序属性,请告诉我。谢谢你 !!
docker - 在 docker compose 中为运行状况检查指定 postgres 参数的安全方法
我正在使用 Secrets 来管理用户名、密码和 dbname,并使用 Docker 堆栈将 Postgres 作为数据库。我现在想使用 Docker 提供的健康检查功能。
码头工人-compose.yml
正如本healthcheck:
节中所指出的,我将使用运行状况检查公开数据库用户名和数据库名称。我的问题(根据答案进行一些跟进):
- 有关系吗?docker-compose.yml 文件不在运行此代码的主机上。因此,潜在的攻击者将无法从那里访问此信息......但是,由于 docker 将执行运行状况检查,它可能会在该容器中实时跟踪(shell?docker configs 存储该过程的文件?)
- 如果它确实重要,我如何在不暴露该信息的情况下执行健康检查?我必须直接使用这些秘密,但是我不知道如何使用docker-compose文件中的秘密......
想法?解决方法?
额外细节:
- 我目前正在检查数据库是否从使用它的(烧瓶)容器中启动。例如,烧瓶服务检查它是否可以 ping 数据库。但是,我宁愿将事物分开,而 DB 容器应该是一个告诉它是否健康的容器(imo)。
docker - Cannot access to secrets .net core with Docker
In my .net core Api i use secrets.json:
Evidently in my .csproj:
And use in my Startup.cs ConfigureServicesMethod():
If run the application on IISExpres it works (get the secret key).
But if i run the Api in docker like docker-compose, then in runtime the secret key is not obtained:
In my docker-compose.override file i have:
Additional, i have defined the APPDATA environment variable:
How can i access to secret key when i run the Api in docker ?
azure - 如何在 Azure DevOps 的“deployment.template.json”中替换 IoT Edge 环境变量
我想将 Azure DevOps 用于 IoT Edge 项目,其中一些机密应通过 json 文件传递。这是 deployment.template.json 文件的片段:
本地一切正常。我有 .env 文件,并且 json 中的值将在构建期间正确替换。
如何在 Azure DevOps 中使用相同的行为?
我已经声明了 devops 管道变量,但是 json 文件中的占位符没有从变量中替换。
docker - 使用 Docker Secret 作为 Quarkus 数据源密码
我目前在一个项目中工作,该项目的客户端需要相对较高的安全级别,并且生产数据库密码不与我们开发人员共享。
我正在使用Quarkus version 1.9.2.Final
部署在Docker Swarm
. 我想知道是否有办法将数据源密码存储在 Docker Secret 中并在我的application.properties
文件中使用该密码
我的 application.properties 文件
我的 pom.xml 配置文件:
我的 compose.yml 文件:
目标是以下之一:
- 用Docker Secret 中的数据库密码替换
prod-dbpass
我的文件中的。pom.xml
或者
- 从文件中完全删除该
db-pass
属性,并使用来自 Docker Secret 的数据库密码在文件中设置该属性。pom.xml
quarkus.datasource.password
application.properties
docker-compose - docker swarm:使用环境变量的秘密
我正在使用 docker swarm 和 portainer 来部署以前直接在 proxmox vms 中的应用程序。
我想改进集群集群的部署流程和秘密的配置。
我用 portainer 定义了 swarm 集群中的秘密
我从 wordpress 开始,但这些秘密并不像我预期的那样起作用。我想使用秘密来完成环境变量,但这保持为空:
这样做的正确方法是什么?