我不确定如何命名Dockerfiles。许多GitHub用户使用Dockerfile,但没有文件扩展名。我给他们一个名字和扩展;如果有,那又怎样?或者我就叫它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
其他回答
dev.Dockerfile、测试。Dockerfile,构建。Dockerfile等等。
在VS Code中,我使用<purpose>。Dockerfile,它被正确识别。
如果你只有一个docker文件(每个目录),Dockerfile是很好的。你可以使用任何你想要的标准,如果你需要多个docker文件在同一个目录- 如果你有充分的理由。在最近的一个项目中,有AWS docker文件和本地开发环境文件,因为环境差异很大:
Dockerfile Dockerfile.aws
我知道这是一个老问题,有很多答案,但我惊讶地发现,没有人建议在官方文件中使用的命名惯例:
$ docker build -f dockerfiles/Dockerfile.debug -t myapp_debug $ docker build -f dockerfiles/Dockerfile。Prod -t myapp_prod。 上面的命令将构建两次当前构建上下文(由.指定),一次使用Dockerfile的调试版本,一次使用生产版本。
总之,如果在构建上下文的根目录中有一个名为Dockerfile的文件,那么它将被自动拾取。如果同一个构建上下文需要多个Dockerfile,建议的命名约定是:
Dockerfile.<purpose>
这些dockerfile可以位于构建上下文的根目录中,也可以位于子目录中,以使根目录更加整洁。
Dockerfile(自定义名称和文件夹):
docker/app.Dockerfile
docker/nginx.Dockerfile
构建:
docker build -f ./docker/app.Dockerfile .
docker build -f ./docker/nginx.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登录
- 如何在ENTRYPOINT数组中使用Docker环境变量?
- Docker:容器不断地重新启动
- 单元测试的一些常用命名约定是什么?
- Mac/OS X上的/var/lib/docker在哪里
- 如何用docker-compose标记docker图像
- 从环境文件中读入环境变量
- 禁用特定RUN命令的缓存
- 从Docker容器获取环境变量
- E: gnupg, gnupg2和gnupg1似乎没有安装,但是这个操作需要其中一个
- 如何从docker更改默认docker注册表。IO到我的私人注册表?
- Docker- compose无法连接到Docker Daemon
- 单个命令停止和删除docker容器
- 使用GPU从docker容器?
- 如何使用本地映像作为dockerfile的基本映像?