我正在考虑将Rust应用程序打包到Docker容器中。

该应用程序的当前版本包含各种凭证文件,这些凭证文件用于通过服务帐户密钥注册到Discord API或Google API。

如果我这样打包应用程序,这些文件是否可以访问?

[编辑:已添加Dockerfile]

FROM rust:1.28.0

WORKDIR /usr/src/<application>
COPY . .

RUN cargo install --force --path .

CMD ["<application>"]

最佳答案

切勿将实际凭据放入您本人和只有您本人无法访问的任何内容中。
您基本上有两个选择:

1)让您的应用程序从其环境中获取所需的凭据,然后在启动容器时设置这些变量。见docs

2)让您的应用程序从配置文件读取凭据,该配置文件不会被拉入Docker镜像。然后,在运行容器时,将该文件装入其中,请参见docs

您实际上可以同时做这两个事情:具有一个环境变量,该变量告诉您​​的应用程序是否应寻找配置文件(也许正在生产中),并且如果未设置该变量,请检查环境(用于开发)。

编辑:最佳实践是在构建上下文中创建一个.dockerignore文件,其中包含保存凭据的文件的名称(或路径)。

关于docker - Docker镜像的安全性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52369324/

10-13 09:15