如何在docker容器中正确使用apache运行django
因此,我一直在尝试将我的Django应用程序与apache停靠在一个容器上,我不断收到这个错误如何在docker容器中正确使用apache运行django,django,docker,apache,docker-compose,Django,Docker,Apache,Docker Compose,因此,我一直在尝试将我的Django应用程序与apache停靠在一个容器上,我不断收到这个错误 无效命令“WSGIProcessGroup”,可能拼写错误或由服务器配置中未包含的模块定义 我试图用apt和pip安装mod_wsgi,但结果还是一样 这是我的文件 FROM httpd:2.4 ADD ./requirements.txt ./ RUN apt-get update \ && apt-get install -y \ python3-pip python3-venv
无效命令“WSGIProcessGroup”,可能拼写错误或由服务器配置中未包含的模块定义
我试图用apt和pip安装mod_wsgi,但结果还是一样
这是我的文件
FROM httpd:2.4
ADD ./requirements.txt ./
RUN apt-get update \
&& apt-get install -y \
python3-pip python3-venv \
libapr1 libapr1-dev \
libaprutil1-dev \
libapache2-mod-wsgi \
&& python3 -m venv /.cp \
&& /.cp/bin/pip install --no-cache-dir -r requirements.txt \
&& rm -rf /var/lib/apt/lists/*
requirements.txt
django
mod-wsgi
psycopg2-binary
djangorestframework
markdown
django-filter
我的自定义vhost文件
<VirtualHost *:80>
serverAdmin svenikia@taskmaster.com
DocumentRoot "/usr/local/apache2/htdocs/webapp"
Servername www.webapp.io
ServerAlias webapp.io
ErrorLog "/var/log/apache2/error.log"
CustomLog "/var/log/apache2/access.log" combined
Alias /static /capstone/static
<Directory "/usr/local/apache2/htdocs/webapp/static">
Require all granted
AllowOverride None
</Directory>
<Directory "/usr/local/apache2/htdocs/webapp/webapp">
<Files wsgi.py>
AllowOverride None
Require all granted
</Files>
</Directory>
WSGIProcessGroup webapp_project
WSGIDaemonProcess webapp_project python-path=/webapp python-home=/.env
WSGIScriptAlias / /usr/local/apache2/htdocs/webapp/webapp/wsgi.py
</VirtualHost>
最初我的想法是有3个容器,一个用于postgres,第二个用于django,第三个用于apache。但在多次失败尝试之后,我只使用了两个容器,一个用于postgres,另一个用于生成virtualenv、django应用程序和apache。任何帮助都会很好,谢谢你你所做的是正确的,但它缺少一些定制的东西:
如需了解更多详细信息,请遵循此谢谢,朋友,我将尝试遵循上述示例,如果我成功,我将标记您的解决方案不客气,目标是您可以解决您的问题。
version: '2'
services:
postgres:
image: postgres:13.1-alpine
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: parking
restart: always
container_name: db
apache:
build : ./Django
image: web:1.0
container_name: web
ports:
- "8080:80"
volumes:
- ./my-httpd.conf:/usr/local/apache2/conf/httpd.conf
- ./Django/web.conf:/usr/local/apache2/conf/extra/httpd-vhosts.conf
- ./Django/web:/usr/local/apache2/htdocs/my-web
networks:
default:
external:
name: network