Files
nodebestpractices/sections/docker/docker-ignore.chinese.md
2021-07-19 23:05:53 +08:00

1.4 KiB
Raw Permalink Blame History

使用.dockerignore防止泄漏机密



一段解释

Docker的build命令会通过一个虚拟网络virtual network拷贝本地文件到构建的上下文环境。注意 - 开发和CI文件夹会包含机密文件比如.npmrc.aws.env以及其他一些敏感文件。最终Docker镜像可能会包含机密信息并在不安全的区域暴露它们例如Docker repositorypartners servers。一个更好的方式是Dockerfile应该明确地描述哪些文件需要被复制。除此之外包含一个.dockerginore文件还充当最后一个安全网过滤掉不必要的文件夹和潜在的机密文件。这样做还可以加快构建速度 - 通过排除在生产环境并不会用到的通用开发文件夹(例如.git测试结果IDE配置整个构建过程可以更好的使用缓存并取得一个更佳的性能。



代码示例 对于Node.js一个好的默认.dockerignore示例

.dockerignore
**/node_modules/
**/.git
**/README.md
**/LICENSE
**/.vscode
**/npm-debug.log
**/coverage
**/.env
**/.editorconfig
**/.aws
**/dist



代码示例 反模式 - 遍历拷贝所有文件

Dockerfile
FROM node:12-slim AS build

WORKDIR /usr/src/app
# 下一行拷贝所有文件
COPY . .

# 剩余部分