我在端口 8000:80 上的 apache+docker 上有 django 应用程序 运行ning,需要 运行 另一个应用程序与另一个端口但不工作
I have django application running on apache+docker on port 8000:80,need to run another application with another port but not working
我有 Django 应用程序 运行 apache+docker 在 ubuntu 服务器上有 8000:80 端口。现在我有了另一个 Django 应用程序。
我想 运行 使用不同端口 8006 或任何其他端口的 apache+docker 应用程序。我认为我们不能为同一个端口绑定两个应用程序 80.Correct 我如果我错了,欢迎提出建议。
我可以构建 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"]
和演示-site.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 端口
我有 Django 应用程序 运行 apache+docker 在 ubuntu 服务器上有 8000:80 端口。现在我有了另一个 Django 应用程序。
我想 运行 使用不同端口 8006 或任何其他端口的 apache+docker 应用程序。我认为我们不能为同一个端口绑定两个应用程序 80.Correct 我如果我错了,欢迎提出建议。
我可以构建 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"]
和演示-site.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 端口