django - 在 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
请帮我看看!
解决方案
如果您的正常开发树中有虚拟环境,则无法将其复制到 Docker 映像中。.dockerignore
您可以通过在文件中提及它从构建序列中排除它:
# .dockerignore
myenv
在 Dockerfile 中,该RUN pip install
行会将应用程序的依赖项安装到 Docker 映像中,因此您应该拥有一个完整的自包含映像。
推荐阅读
- apache-spark - 结构化流式传输后,ORC 文件只能通过文件夹中的通配符读取
- sql - 有没有办法从具有随机值的表列创建范围
- java - 在具有两个对象的数组中,如何在 (1) 处获得越界异常?
- php - 如何从 Google People API 检索属于特定组或标签的联系人列表
- postman - 如何使用“to.be”在邮递员中使用响应断言?
- python - 如何在循环中不断更新张量的值
- java - 我正在使用 json 从数据库中获取本地日期时间
- mocha.js - 创建 mocha 测试套件以启动应用程序一次
- ios - iOS蓝牙键盘未注册VoiceOver control+option/(CTRL+ALT)键同时按下
- c++ - 由于从 std::map 派生的类中的 std::map 迭代器导致的内存错误