【发布时间】:2019-03-21 20:26:50
【问题描述】:
过去 3 天一直卡在这个问题上。我正在码头工人中建立一个形象和 由于找不到正确的目录,复制命令失败。
FROM python:3.6.7-alpine
WORKDIR /usr/src/app
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip3 install -r requirements.txt
COPY . /usr/src/app
CMD python3 manage.py run -h 0.0.0.0
由这个 docker-dev 文件运行:
version: '3.7'
services:
users:
build:
context: ./services/users
dockerfile: Dockerfile-dev
volumes:
- './services/users:/usr/src/app'
ports:
- 5001:5000
environment:
- FLASK_APP=project/__init__.py
- FLASK_ENV=development
并收到此错误:
Building users
Step 1/6 : FROM python:3.6.7-alpine
---> cb04a359db13
Step 2/6 : WORKDIR /usr/src/app
---> Using cache
---> 06bb39a49444
Step 3/6 : COPY ./requirements.txt /usr/src/app/requirements.txt
ERROR: Service 'users' failed to build: COPY failed: stat /var/snap/docker/common/var-lib-docker/tmp/docker-builder353668631/requirements.txt: no such file or directory
我什至不知道从哪里开始调试它。当我尝试访问该目录时,它给了我权限错误。因此,我尝试使用 sudo 运行该命令,但没有帮助。有什么想法吗?
【问题讨论】:
-
您的
./services/users目录中有requirements.txt吗? -
@larks Omg ...我将文件移动给用户并且它有效。我认为它应该在我正在执行脚本的目录中。不敢相信我被这个微不足道的错误困扰了这么久。
-
所以需求文件需要和context属性指向的目录在同一个目录。
-
@BillyDarwin 好吧,这就是上下文的全部意义,如果您确实指定了上下文,那么是的,文件是相对于它的。如果您没有上下文,则上下文是相对于
Dockerfile位置的。 docs.docker.com/compose/compose-file/#build -
如果你没有使用
docker-compose,而是通过docker build构建镜像,那么上下文就是你可以给构建命令docker build . # context is the current dirvsdocker build /path/to/my/context提供的唯一参数
标签: docker dockerfile