Невозможно выполнить докеризацию django
Я новичок в Docker, я попробовал несколько видео примеров на youtube, но я не могу докеризировать приложение django с помощью anaconda
Вот мой Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /app
ADD . /app
COPY ./requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY . /app
Вот docker-compose.yml
version: '3'
services:
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
ports:
- 8000:8000
Вот требования.txt
asgiref 3.4.1 pyhd3eb1b0_0
ca-certificates 2021.10.26 haa95532_2
certifi 2021.10.8 py39haa95532_2
django 3.2.5 pyhd3eb1b0_0
krb5 1.19.2 h5b6d351_0
libpq 12.9 hb652d5d_1
openssl 1.1.1m h2bbff1b_0
pip 21.3.1 pypi_0 pypi
psycopg2 2.8.6 py39hcd4344a_1
python 3.9.7 h6244533_1
pytz 2021.3 pyhd3eb1b0_0
setuptools 58.0.4 py39haa95532_0
sqlite 3.37.0 h2bbff1b_0
sqlparse 0.4.1 py_0
typing_extensions 3.10.0.2 pyh06a4308_0
tzdata 2021e hda174b7_0
vc 14.2 h21ff451_1
vs2015_runtime 14.27.29016 h5e58377_2
wheel 0.37.1 pyhd3eb1b0_0
wincertstore 0.2 py39haa95532_2
zlib 1.2.11 h8cc25b3_4
После запуска "docker-compose build" я получаю следующее сообщение об ошибке
=> ERROR [5/6] RUN pip install -r requirements.txt 3.1s
------
> [5/6] RUN pip install -r requirements.txt:
#10 2.240 ERROR: Invalid requirement: 'asgiref 3.4.1 pyhd3eb1b0_0' (from line 4 of requirements.txt)
#10 2.933 WARNING: You are using pip version 21.2.4; however, version 21.3.1 is available.
#10 2.933 You should consider upgrading via the '/usr/local/bin/python -m pip install --upgrade pip' command.
------
executor failed running [/bin/sh -c pip install -r requirements.txt]: exit code: 1
ERROR: Service 'web' failed to build : Build failed
Первый...
Создайте файл требований из pip freeze >> requirements.txt
Идеально только те элементы, которые вы вручную установили через pip install, должны быть в файле requirements.txt, так как все остальные будут установлены как зависимости
Предлагаемые изменения в вашем Dockerfile:
...
COPY ./requirements.txt /tmp/requirements.txt # copy [local source] [docker destination]
RUN python -m pip install --upgrade pip \ # upgrade pip
&& pip install -r /tmp/requirements.txt \ # install django requirements from destination
&& rm -rf /tmp/requirements.txt # remove temp files
...
Вы копировали файл requirements.txt в контейнер docker в папку /app. Затем, когда вы пытались выполнить команду pip install, вы не ссылались на эту папку /app