从一个Docker容器运行两个django站点?

时间:2018-10-29 17:59:47

标签: django docker

我有一个使用sites framework的网站,基本上有两个不同的域为同一个Django项目服务。在生产中,这是通过Docker容器(包括nginx服务器)提供的。我理想地要做的是从一个Docker容器为两个站点提供服务。这可能吗?这些网站共享相同的数据库,所以这没问题,但是我无法弄清楚的是如何使用相同的端口将另一个“ Web”实例添加到相同的docker容器中(可能是不可能的)。还有其他方法吗?

在同一服务器上启动两个docker容器也可以,但是同样,我必须使用导致冲突的相同端口。

仅供参考,这是docker-compose文件:

version: '3'  

services:  
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./src:/src
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - web
  web:
    build: .
    depends_on:
      - db
    volumes:
      - ./src:/src
    expose:
      - 80
  db:
    image: postgres:latest

1 个答案:

答案 0 :(得分:1)

使用Django在端口80上侦听ex来运行2个容器。在各自的容器中。将主机端口8081和8082分别映射到容器端口80。将nginx配置为侦听端口80,并具有两个服务器块,使用并基于服务器块中的服务器名称将其重定向到任一域名。或使用上游指令将两个服务器块直接重定向到各自的容器来配置nginx。