首页 > 解决方案 > 在 docker-compose build 时获取“处理 tar 文件时出错(退出状态 1):打开 /myenv/include/python3.6m/Python-ast.h:没有这样的文件或目录”

问题描述

所以我对 docker 和 django 还是很陌生。不幸的是,在我使用 putty 使用物理 Windows 机器连接的 linux 机器上运行以下命令时:

docker-compose build

我收到一个错误:

Error processing tar file(exit status 1): open /myenv/include/python3.6m/Python-ast.h: no such file or directory

'myenv' 是我在文件夹中创建的环境。

我在端口 9000 上启动了一个容器。该应用程序没有任何东西,只是一个简单的项目,所以我只希望看到“祝贺”屏幕。我不知道我哪里错了。我的最终目标是在我的 Windows 浏览器中运行 docker url 并查看 docker 容器的屏幕。

这是我的 docker-compose.yml 文件:

version: '3'

services:
     web:
        build: .
        command: python manage.py runserver 0.0.0.0:9000
        ports:
            - 202.179.92.106:8000:9000

IP:202.179.92.106是我的公共IP。我进行了上述绑定,以便从我的 Windows 机器访问 docker 容器。如果正确/不正确,也会为端口绑定请求额外的输入。

下面是我的 Dockerfile:

FROM python:3.6.9

RUN mkdir djangotest

WORKDIR djangotest

ADD . /djangotest

RUN pip install -r requirements.txt

请帮我看看!

标签: djangolinuxdockerdocker-compose

解决方案


如果您的正常开发树中有虚拟环境,则无法将其复制到 Docker 映像中。.dockerignore您可以通过在文件中提及它从构建序列中排除它:

# .dockerignore
myenv

在 Dockerfile 中,该RUN pip install行会将应用程序的依赖项安装到 Docker 映像中,因此您应该拥有一个完整的自包含映像。


推荐阅读