我正在考虑将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/