我不确定如何命名Dockerfiles。许多GitHub用户使用Dockerfile,但没有文件扩展名。我给他们一个名字和扩展;如果有,那又怎样?或者我就叫它Dockerfile?
当前回答
如果你只有一个docker文件(每个目录),Dockerfile是很好的。你可以使用任何你想要的标准,如果你需要多个docker文件在同一个目录- 如果你有充分的理由。在最近的一个项目中,有AWS docker文件和本地开发环境文件,因为环境差异很大:
Dockerfile Dockerfile.aws
其他回答
Dockerfile有两个主要的命名约定:
1. 使用默认Dockerfile:
保持简单,这种方法适合简单的、独立的、定义良好的项目。
$ docker build -f ./Dockerfile.Dockerfile .
2. 使用自定义Dockerfile:
这种方法保持自定义,使开发人员熟悉应用程序上下文,方便了文件操作,并提高了调试能力,特别是在多个dockerfile的情况下。
$ docker build -t <containername> . -f <mycustomdockerfile>.Dockerfile
温馨提醒:
这些约定同样适用于常见的docker镜像构建命令,如“docker image build”和“docker-compose build”。
我认为每个容器都应该有一个Dockerfile(没有扩展名)的目录。例如:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
当你只使用目录名构建时,Docker会找到Dockerfile。例句:
docker build -f ./db .
这似乎是真的,但就我个人而言,这似乎是一个糟糕的设计。当然,有一个默认名称(带扩展名),但允许使用其他名称,并有一种方法为命令指定docker文件的名称。
拥有扩展也很好,因为它允许将应用程序与该扩展类型关联。当我在MacOSX中点击Dockerfile时,它会将其视为Unix可执行文件并尝试运行它。
如果Docker文件有一个扩展名,我可以告诉操作系统用一个特定的应用程序启动它们,例如我的文本编辑器应用程序。我不确定,但当前的行为也可能与文件权限有关。
如果你只有一个docker文件(每个目录),Dockerfile是很好的。你可以使用任何你想要的标准,如果你需要多个docker文件在同一个目录- 如果你有充分的理由。在最近的一个项目中,有AWS docker文件和本地开发环境文件,因为环境差异很大:
Dockerfile Dockerfile.aws
dev.Dockerfile、测试。Dockerfile,构建。Dockerfile等等。
在VS Code中,我使用<purpose>。Dockerfile,它被正确识别。
推荐文章
- 安装tzdata非交互式
- 试图连接到https://index.docker.io时,网络超时
- 为每个Docker图像查找图层和图层大小
- 如何避免在为Python项目构建Docker映像时重新安装包?
- 如何用docker-compose更新现有图像?
- 如何在构建docker期间设置环境变量
- 拉访问拒绝存储库不存在或可能需要docker登录
- 如何在ENTRYPOINT数组中使用Docker环境变量?
- Docker:容器不断地重新启动
- 单元测试的一些常用命名约定是什么?
- Mac/OS X上的/var/lib/docker在哪里
- 如何用docker-compose标记docker图像
- 从环境文件中读入环境变量
- 禁用特定RUN命令的缓存
- 从Docker容器获取环境变量