我正在尝试学习docker并创建了我的第一个docker组合文件。基本上我正在尝试创建一个Django Web微服务并使用docker组合文件来管理它。以下是我的docker-compose.yml代码:
version: "3"
services:
app:
build:
context: .
ports:
- "8000:8000"
volumes:
- ./app:/app
command: >
sh -c "py manage.py runserver 0.0.0.0:8000"
我不明白context: .
的用法谁能给我解释一下
2条答案
按热度按时间brc7rcf01#
包含
Dockerfile
的目录的路径,或者git仓库的url。当提供的值是相对路径时,它被解释为相对于合成文件的位置。此目录也是发送到Docker守护程序的构建上下文。
Compose使用生成的名称构建和标记它,然后使用该图像。
这意味着,它是包含
Dockerfile
文件的目录的路径。它的目的是为服务构建一个新的映像。参考:https://docs.docker.com/compose/compose-file/compose-file-v3/
在您的情况下:
Dockerfile
文件应存在于当前目录中(与docker-compose.yml
文件位于同一文件夹中)。8i9zcol22#
从正式文件中我们知道:
context定义了包含Dockerfile的目录的路径,或者git仓库的URL。
在您的示例中,
.
是表示当前目录的相对路径,您在该目录中运行docker-compose
命令,Compose可以在该目录中找到Dockerfile(显然也可以找到docker-compose.yaml
文件)。Dockerfile也可以在其他位置使用
dockerfile
关键字,如this example中的关键字:这里额外的
context
关键字用于告诉Dockerfile在哪里可以找到它的依赖文件。例如,在您的
Dockerfile
中有以下几行:这三个文件必须在context目录或git仓库中:一米六氮一x一米七氮一x一米八氮一x。