【发布时间】: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