繁体   English   中英

Docker-compose django 和 mysql 构建错误

[英]Docker-compose build error with django and mysql

我试图用 docker-compose 和 MySQL 构建一个 Django 项目,但是当我运行“docker

db uses an image, skipping
Building with native build. Learn about native build in Compose here:
Building web
Sending build context to Docker daemon  22.02kB
Step 6/6 : COPY . /code/
 ---> 2f42d48fb668
Successfully built 2f42d48fb668
Successfully tagged djangonew_web:latest
Traceback (most recent call last):
  File "docker-compose", line 3, in <module>
  File "compose/cli/main.py", line 80, in main
  File "compose/cli/main.py", line 192, in perform_command
  File "compose/metrics/decorator.py", line 18, in wrapper
  File "compose/cli/main.py", line 369, in build
  File "compose/project.py", line 521, in build
  File "compose/project.py", line 503, in build_service
  File "compose/service.py", line 1131, in build
  File "compose/progress_stream.py", line 22, in stream_output
  File "compose/utils.py", line 50, in split_buffer
  File "compose/utils.py", line 26, in stream_as_text
  File "compose/service.py", line 1894, in build
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmpjwyh07ql'
[16684] Failed to execute script docker-compose

我的 Dockerfile:

FROM python:3
ENV PYTHONBUFFERD=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/

我的 docker-compose.yml 文件:

version: "3.9"

services:
  db:
    image: mysql
    environment:
      - MYSQL_DB=mysql_test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test
      - MYSQL_ROOT_PASSWORD=test
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000" 
    depends_on:
      - db

这是一个如此神秘的错误,我现在真的不知道 go 在哪里。 如果有人可以帮助我,我会很高兴。

谢谢 !

避免使用诸如. (点)用于复制整个工作目录。

一方面,这对于运行它的每个环境都会有所不同,因为它包括所有隐藏和本地文件,而不仅仅是您期望的那些(例如,由您的版本系统跟踪的那些)。

其次,可能存在指向其他目录的链接,因此您甚至可能最终复制了很多您绝对不想在 Dockerfile 中拥有的东西。 这很可能是您的情况。

.dockerignore是一种防止复制过多的方法,但您也应该尝试更明确地复制。 这也将帮助其他人了解您希望在 Dockerfile 中使用此特定COPY命令实现的目标。

tl;dr:生成的 docker 映像应仅包含运行所需的内容,并且只有在有意更改时才应更改(包含任何不同的内容)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM