无法在 Docker 容器中安装 Django 包
Unable to install Django package in a Docker container
我正在尝试在 Docker 容器中安装一个简单的 Django 包。
这是我的docker文件
FROM python:3.8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY Pipfile Pipfile.lock /app/
RUN pip install pipenv && pipenv install --system
COPY . /app/
这是我的 docker-撰写:
version: '3.7'
services:
web:
build: .
command: python /app/manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- 8000:8000
depends_on:
- db
db:
image: postgres:11
volumes:
- /Users/ruslaniv/Documents/Docker/djangoapp:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=XXX
- POSTGRES_PASSWORD=XXX
- POSTGRES_DB=djangoapp
volumes:
djangoapp:
所以,我用
启动我的容器
docker-compose up
然后安装一个包并重建一个镜像
docker-compose exec web pipenv install django-crispy-forms
docker-compose down
docker-compose up -d --build
然后我将 'crispy_forms'
添加到本地 settings.py
并在本地 html 文件中使用 {% load crispy_forms_tags %}
注册 crispy 表单标签,然后将它们用于带有 [= 的表单18=]
但是表格没有正确呈现。
由于包本身及其用法非常简单,我认为将包安装在容器中存在问题。
所以问题是如何在 Docker 容器中正确安装 Django 包,我是否正确安装?
虽然问题是关于在 Docker 容器中安装 Django 包,但解决方案要简单得多。
我应该更加注意的两个事实:
- 在容器内安装
django-crispy-forms
后,我可以在本地 Pipfile
和 Pipfile.lock
中看到适当的条目(向@MichalKrejčí 致敬)
- 重建映像并 运行 之后,Django 服务器 没有 崩溃
ModuleNotFoundError: No module named 'crispy_forms'
所有这些都意味着软件包已成功安装,还有其他事情正在发生。
这是我必须手动包含 Bootstrap4 CSS 文件以根据 Bootstrap4 模板呈现表单的脆皮表单的事实。
首先,您应该停止您的容器
docker-compose down
其次,激活你的本地环境
如果使用 pipenv
pipenv shell
pipenv install django-crispy-forms
第三,重建你的容器
docker-compose up -d --build
最后,再次停止您的容器并且
docker-compose up -d
我正在尝试在 Docker 容器中安装一个简单的 Django 包。
这是我的docker文件
FROM python:3.8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY Pipfile Pipfile.lock /app/
RUN pip install pipenv && pipenv install --system
COPY . /app/
这是我的 docker-撰写:
version: '3.7'
services:
web:
build: .
command: python /app/manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- 8000:8000
depends_on:
- db
db:
image: postgres:11
volumes:
- /Users/ruslaniv/Documents/Docker/djangoapp:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=XXX
- POSTGRES_PASSWORD=XXX
- POSTGRES_DB=djangoapp
volumes:
djangoapp:
所以,我用
启动我的容器docker-compose up
然后安装一个包并重建一个镜像
docker-compose exec web pipenv install django-crispy-forms
docker-compose down
docker-compose up -d --build
然后我将 'crispy_forms'
添加到本地 settings.py
并在本地 html 文件中使用 {% load crispy_forms_tags %}
注册 crispy 表单标签,然后将它们用于带有 [= 的表单18=]
但是表格没有正确呈现。
由于包本身及其用法非常简单,我认为将包安装在容器中存在问题。
所以问题是如何在 Docker 容器中正确安装 Django 包,我是否正确安装?
虽然问题是关于在 Docker 容器中安装 Django 包,但解决方案要简单得多。
我应该更加注意的两个事实:
- 在容器内安装
django-crispy-forms
后,我可以在本地Pipfile
和Pipfile.lock
中看到适当的条目(向@MichalKrejčí 致敬) - 重建映像并 运行 之后,Django 服务器 没有 崩溃
ModuleNotFoundError: No module named 'crispy_forms'
所有这些都意味着软件包已成功安装,还有其他事情正在发生。
这是我必须手动包含 Bootstrap4 CSS 文件以根据 Bootstrap4 模板呈现表单的脆皮表单的事实。
首先,您应该停止您的容器
docker-compose down
其次,激活你的本地环境 如果使用 pipenv
pipenv shell
pipenv install django-crispy-forms
第三,重建你的容器
docker-compose up -d --build
最后,再次停止您的容器并且
docker-compose up -d