运行多个网站 - docker撰写

时间:2017-12-16 19:11:51

标签: docker nginx docker-compose dockerfile

我有一个看起来像这样的

的docker-compose.yml文件
version: "3.0"

volumes: 
  dbdata:
  .:

services:
  api:
    build:
      context: ./api
      args:
        - APP_NAME=${APP_NAME}
      dockerfile: dockerfile
    depends_on:
      - database
      - webserver
    volumes: 
      - ./api:/usr/local/share/${APP_NAME}

  database:
    image: mysql:5.7
    volumes:
      - ./dbdata:/var/lib/mysql
    restart: always
    ports:
      - ${COMPOSE_DB_PORT}:3306

  webserver:
    build:
      context: .
      dockerfile: webserver.dockerfile
    working_dir: "/usr/local/share/${APP_NAME}"
    volumes: 
      - ./api:/usr/local/share/${APP_NAME}
    restart: always
    ports:
      - ${COMPOSE_APP_PORT}:80

它有3项服务。一个网站,一个数据库和一个按预期工作的网络服务器。

现在我有另一个单独的Web项目,它是一个使用与API项目相同的数据库的CMS,我想将它添加到此docker compose文件中,但我无法弄清楚如何配置Web服务器服务处理来自所述2个网站的请求。我应该为cms添加另一个Web服务器吗?

我在谷歌搜索但我找不到清楚的东西,而且大部分结果都是使用我不熟悉的旧码头组合版本。

提前致谢。

1 个答案:

答案 0 :(得分:3)

通常情况下,您会有一个单独的Web服务器,它会公开并发布自己的端口(不是80)。

并且您将拥有一个专用侦听器(通常是NGiNX)来确保反向代理,以便将查询重定向到正确的Web服务器,具体取决于其路径或端口。

http://www.bogotobogo.com/DevOps/Docker/images/Docker-compose-reverse-proxy-nginx/nginx-reverse-proxy-pic.png的{p> K Hong

例如,请参阅“Docker compose : NGINX reverse proxy with multiple containers