我在学 Docker我需要为一个Docker映像指定工作目录,我想应该是这样的:
version: '2' services: test: build: context: ./dir
现在我想让映像python:onbuild在./dir上运行,但我不想在./dir内创建任何Dockerfile。docker-compose手册对此只字未提。可能吗?怎么做?
python:onbuild
./dir
Dockerfile
docker-compose
6mzjoqzu1#
我想你要找的是working_dir。在docker-compose引用中搜索“working_dir”。
working_dir
um6iljoc2#
可以按如下方式指定工作目录。
version: '2' services: test: build: context: /path/to/source/dir/ dockerfile: /path/to/custom-Dockerfile/relative/tocontextdir/Dockerfile working_dir: /app
yc0p9oo03#
可能并不完全是您所寻找的,但是您可以将Docker构建的“上下文”指定为与实际Dockerfile所在的目录不同的目录。
build: context: ./folder/containing/files dockerfile: path/to/dockerfile/relative/to/context/Dockerfile
然后,无论Dockerfile实际位于何处,您的Dockerfile中的任何ADD/COPY命令都将以相对于context的方式运行。
context
yx2lnoni4#
Docker Compose中的构建配置只是在对docker build的调用中结束,因此您需要有一个Dockerfile来使用该工作流。正如docs for python:onbuild所说,你可以从一个只包含FROM python:onbuild的最小Dockerfile开始。但是正如他们所说,:onbuild不是一个很好的选择,你将有更多的控制权来构建你自己的Dockerfile FROM python。
docker build
FROM python:onbuild
:onbuild
FROM python
4条答案
按热度按时间6mzjoqzu1#
我想你要找的是
working_dir
。在docker-compose引用中搜索“working_dir”。um6iljoc2#
可以按如下方式指定工作目录。
yc0p9oo03#
可能并不完全是您所寻找的,但是您可以将Docker构建的“上下文”指定为与实际Dockerfile所在的目录不同的目录。
然后,无论Dockerfile实际位于何处,您的Dockerfile中的任何ADD/COPY命令都将以相对于
context
的方式运行。yx2lnoni4#
Docker Compose中的构建配置只是在对
docker build
的调用中结束,因此您需要有一个Dockerfile来使用该工作流。正如docs for python:onbuild所说,你可以从一个只包含
FROM python:onbuild
的最小Dockerfile开始。但是正如他们所说,:onbuild
不是一个很好的选择,你将有更多的控制权来构建你自己的DockerfileFROM python
。