我不确定如何命名Dockerfiles。许多GitHub用户使用Dockerfile,但没有文件扩展名。我给他们一个名字和扩展;如果有,那又怎样?或者我就叫它Dockerfile?
当前回答
我在同一个目录下创建了两个dockerfile,
# vi one.Dockerfile
# vi two.Dockerfile
来构建dockerfile,
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
注意:你应该在当前的工作目录。
其他回答
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”。
这似乎是真的,但就我个人而言,这似乎是一个糟糕的设计。当然,有一个默认名称(带扩展名),但允许使用其他名称,并有一种方法为命令指定docker文件的名称。
拥有扩展也很好,因为它允许将应用程序与该扩展类型关联。当我在MacOSX中点击Dockerfile时,它会将其视为Unix可执行文件并尝试运行它。
如果Docker文件有一个扩展名,我可以告诉操作系统用一个特定的应用程序启动它们,例如我的文本编辑器应用程序。我不确定,但当前的行为也可能与文件权限有关。
Dockerfile(自定义名称和文件夹):
docker/app.Dockerfile
docker/nginx.Dockerfile
构建:
docker build -f ./docker/app.Dockerfile .
docker build -f ./docker/nginx.Dockerfile .
[请阅读完整答案]如果您想使用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
如果你想使用hub.docker.com上的autobuilder,它必须是Dockerfile。所以就这样了:)
推荐文章
- 禁用特定RUN命令的缓存
- 从Docker容器获取环境变量
- E: gnupg, gnupg2和gnupg1似乎没有安装,但是这个操作需要其中一个
- 如何从docker更改默认docker注册表。IO到我的私人注册表?
- Docker- compose无法连接到Docker Daemon
- 单个命令停止和删除docker容器
- 使用GPU从docker容器?
- 如何使用本地映像作为dockerfile的基本映像?
- 谁能解释一下docker.sock
- 多重from是什么意思
- 通过映像名称停止Docker容器- Ubuntu
- 如果dockerfile的名称不是dockerfile,我如何构建一个dockerfile ?
- 守护进程的错误响应:已被集装箱使用"
- 有没有REST api的命名规范指南?
- SQL Server索引命名约定