我在 ubuntu 服务器中使用 apache+docker 和 8000:80 端口运行 Django 应用程序。现在我有另一个 Django 应用程序。
我想使用具有不同端口 8006 或任何其他端口的 apache+docker 运行该应用程序。我认为我们不能为同一个端口 80 绑定(bind)两个应用程序。如果我错了,请纠正我,欢迎提出建议。
我能够构建 docker 容器并且服务已启动,但无法通过浏览器和请求访问。那么,有什么方法可以做到并能够在浏览器中访问,请建议
这是我的 docker-compose.yml
version: '3.1'
services:
test-app:
image: test-app
build:
context: ./app/
ports:
- "8006:8006"
# networks:
# - GST
container_name: test-app
environment:
- TZ=Asia/Kolkata
restart: on-failure
volumes:
- /storage/req_resp_files:/var/www/html/GSTDP_Develop/req_resp_files
- /storage/gst_logs:/var/www/html/GSTDP_Develop/logs
这是我的 Dockerfile FROM httpd:latest
RUN apt-get update
RUN apt-get install -y apt-utils vim curl apache2 apache2-utils
RUN apt-get -y install python3 libapache2-mod-wsgi-py3
RUN ln /usr/bin/python3 /usr/bin/python
RUN apt-get -y install python3-pip
RUN ln /usr/bin/pip3 /usr/bin/pip
RUN pip install --upgrade pip
RUN pip install django ptvsd
ADD ./demo_site.conf /etc/apache2/sites-available/000-default.conf
#ADD ./httpd-ssl.conf /usr/local/apache2/conf/extra/httpd-ssl.conf
#ADD ./server.key /usr/local/apache2/conf/server.key
#ADD ./server.crt /usr/local/apache2/conf/server.crt
#ADD ./gd_bundle-g2-g1.crt /usr/local/apache2/conf/gd_bundle-g2-g1.crt
ADD ./GSTDP_Develop /var/www/html/GSTDP_Develop
RUN chown -R www-data. /var/www/html/GSTDP_Develop
RUN chown -R www-data. /usr/local/apache2
RUN a2enmod wsgi
#RUN a2enmod ssl
#RUN a2ensite default-ssl
RUN cd /var/www/html/GSTDP_Develop/
RUN pip install -r /var/www/html/GSTDP_Develop/requirements.txt
RUN python /var/www/html/GSTDP_Develop/manage.py collectstatic --noinput
#RUN cd /var/www/html/
#RUN tar -xvzf GSTDP_Develop.tar.gz
EXPOSE 8006
#EXPOSE 443
CMD ["apache2ctl", "-D", "FOREGROUND"]
和 演示站点.conf 文件:WSGIPythonPath /var/www/html/GSTDP_Develop
Listen 8006
<VirtualHost *:8006>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/GSTDP_Develop
WSGIApplicationGroup %{GLOBAL}
Alias /static /var/www/html/GSTDP_Develop/src/static
<Directory /var/www/html/GSTDP_Develop/static>
Require all granted
</Directory>
<Directory /var/www/html/GSTDP_Develop/static>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/html/GSTDP_Develop/src/wsgi.py
<Directory /var/www/html/GSTDP_Develop/src>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess GSTDP_Develop processes=2 threads=6 display-name=gst-dna
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
编辑1:它在终端中的外观
407129a206fd 5ba "apache2ctl -D FOREG…" About a minute ago Up About a minute 0.0.0.0:8006->80006/tcp, :::8006->8006/tcp sharp_keldysh
6ac03b56d3ab gst-app "apache2ctl -D FOREG…" 2 weeks ago Up 3 hours 0.0.0.0:8000->80/tcp, :::8000->80/tcp gst-app
但无法从浏览器访问 url。提前致谢..
最佳答案
对不起,我的坏需要激活那个端口。相应的端口启用并且它正在工作。以及关于 apache 配置的小型返工。改变了
Listen 8006
<VirtualHost *:8006>
至Listen 80
<VirtualHost *:80>
因为它 apache http 请求监听默认为 80 端口
关于python - 我在端口 8000 :80, 上的 apache+docker 上运行 django 应用程序需要用另一个端口运行另一个应用程序但不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69923832/