【问题标题】:Unable to build a docker for Django and Mysql无法为 Django 和 Mysql 构建 docker
【发布时间】:2022-01-28 06:02:27
【问题描述】:

我正在使用 Djnago 和 MySql 构建一个应用程序。但是我在构建时出错。这是我的代码:

docker-compose.yml

version: '3.9'

services:
  db:
    image: mysql
    ports:
      - '3306:3306'
    environment:
       MYSQL_DATABASE: 'repository'
       MYSQL_USER: 'root'
       MYSQL_PASSWORD: ''
       MYSQL_ROOT_PASSWORD: ''
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./:/repository
    ports:
      - "8000:8000"
    depends_on:
      - db

dockerfile

FROM python:3.7.3-alpine

# set work directory
WORKDIR /usr/src/app

# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# install dependencies
RUN pip install --upgrade pip 
COPY requirements.txt .
RUN pip install -r requirements.txt

# copy project
COPY . /usr/src/app

EXPOSE 8000

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

requirements.txt

Django==3.2
django-cors-headers==2.4.0
django-crispy-forms==1.11.0
django-js-asset==1.2.2
djangorestframework==3.11.0
mysqlclient==1.4.6
xhtml2pdf==0.2.5

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'repository',
        'USER': 'root',
        'PASSWORD': '',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

这是我的错误

>     #9 10.61 ERROR: Could not find a version that satisfies the requirement mysqlclient==1.4.6 (from versions: 1.3.0, 1.3.1, 1.3.2,
> 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1.3.7, 1.3.8, 1.3.9, 1.3.10, 1.3.11rc1, 1.3.11, 1.3.12, 1.3.13, 1.3.14, 1.4.0rc1, 1.4.0rc2, 1.4.0rc3, 1.4.0, 1.4.1, 1.4.2, 1.4.2.post1, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0rc1, 2.1.0)
>     #9 10.61 ERROR: No matching distribution found for mysqlclient==1.4.6
>     ------
>     executor failed running [/bin/sh -c pip install -r requirements.txt]: exit code: 1

如果我从 requirements.txt 中删除 mysqlclient 库,我就能够构建图像。 之前谢谢。

【问题讨论】:

  • 这能回答你的问题吗? Docker Alpine: Error loading MySQLdb module
  • 在此之前是否还有其他错误? (请注意,1.4.6 在 pip 能够找到的版本列表中,因此您在 requirements.txt 中有一个有效的版本 pin。)
  • @S.Sachith 哦,是的。真的行。谢谢!

标签: python mysql django docker docker-compose


【解决方案1】:

关于 Python 3 的注意事项 如果您使用的是python3

您可能需要像这样安装 Python 和 MySQL 开发头文件和库:

sudo apt-get install python-dev default-libmysqlclient-dev # Debian / Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
brew install mysql-client # macOS (Homebrew)

您可以参考mysqlclient 1.4.6了解更多详情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2020-06-18
    • 2022-12-04
    • 1970-01-01
    • 2019-12-15
    • 2017-09-15
    • 2021-12-24
    相关资源
    最近更新 更多