我不确定如何命名Dockerfiles。许多GitHub用户使用Dockerfile,但没有文件扩展名。我给他们一个名字和扩展;如果有,那又怎样?或者我就叫它Dockerfile?
当前回答
这似乎是真的,但就我个人而言,这似乎是一个糟糕的设计。当然,有一个默认名称(带扩展名),但允许使用其他名称,并有一种方法为命令指定docker文件的名称。
拥有扩展也很好,因为它允许将应用程序与该扩展类型关联。当我在MacOSX中点击Dockerfile时,它会将其视为Unix可执行文件并尝试运行它。
如果Docker文件有一个扩展名,我可以告诉操作系统用一个特定的应用程序启动它们,例如我的文本编辑器应用程序。我不确定,但当前的行为也可能与文件权限有关。
其他回答
我在同一个目录下创建了两个dockerfile,
# vi one.Dockerfile
# vi two.Dockerfile
来构建dockerfile,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
注意:你应该在当前的工作目录。
我给他们一个名字和扩展;如果有,那又怎样?
你可以随意命名Dockerfiles。默认的文件名是Dockerfile(没有扩展名),使用默认可以使使用容器时的各种任务更容易。
根据您的具体要求,您可能希望更改文件名。例如,如果您正在为多个体系结构进行构建,您可能希望添加一个扩展,将该体系结构指示为树脂。io团队已经为HAProxy容器做了他们的多容器ARM示例:
Dockerfile.aarch64
Dockerfile.amd64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
在提供的示例中,每个Dockerfile都是从不同的、特定于体系结构的上游映像构建的。在使用命令行构建容器时,可以使用——file, -f选项指定用于构建的特定Dockerfile。
这似乎是真的,但就我个人而言,这似乎是一个糟糕的设计。当然,有一个默认名称(带扩展名),但允许使用其他名称,并有一种方法为命令指定docker文件的名称。
拥有扩展也很好,因为它允许将应用程序与该扩展类型关联。当我在MacOSX中点击Dockerfile时,它会将其视为Unix可执行文件并尝试运行它。
如果Docker文件有一个扩展名,我可以告诉操作系统用一个特定的应用程序启动它们,例如我的文本编辑器应用程序。我不确定,但当前的行为也可能与文件权限有关。
[请阅读完整答案]如果您想使用hub.docker.com上的autobuilder,请不要更改dockerfile的名称。不要为docker文件使用扩展名,让它为空。 文件名应该是:(没有扩展名)
Dockerfile
然而,现在你可以这样命名dockerfile,
test1.Dockerfile
$ docker build -f dockerfiles/test1.Dockerfile -t test1_app .
or
Dockerfile.test1
$ docker build -f dockerfiles/Dockerfile.test1 -t test1_app .
这也是可行的。
如果你在同一个上下文中处理多个文件,你可以使用STDIN:
test1.Dockerfile
$ docker build -t test1_app - < test1.Dockerfile
我认为每个容器都应该有一个Dockerfile(没有扩展名)的目录。例如:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
当你只使用目录名构建时,Docker会找到Dockerfile。例句:
docker build -f ./db .
推荐文章
- Docker-compose up vs Docker-compose up -build vs Docker-compose build -no-cache
- 在Docker Alpine容器中启动一个shell
- 允许docker容器连接到本地/主机postgres数据库
- 在Docker Desktop中定位数据卷(Windows)
- 如何通过docker运行传递参数到Shell脚本
- 我的码头集装箱没有网络
- 如何从私有docker注册表中删除图像?
- 创建多个标签码头镜像
- Docker -如何将文件从镜像复制到主机?
- 为什么星号在变量名之前,而不是在类型之后?
- 如何防止docker在系统启动时自动启动容器?
- 什么是Docker映像“层”?
- 无法从docker-compose连接到docker
- Docker错误无法删除Docker容器,冲突:无法删除存储库引用
- 如何让容器在Kubernetes上运行?