使用jwilder / nginx-proxy

时间:2017-11-26 11:45:20

标签: docker nginx jwilder-nginx-proxy

我在docker-compose中有一些服务:

version: "3"
services:
  site:
    volumes:
      - .:/app
    build:
      dockerfile: Dockerfile.dev
      context: docker
    ports:
      - "80:80"

  webpack:
    image: node:6.12.0
    ports:
      - "8080:8080"
    volumes:
      - .:/app
    working_dir: /app
    command: bash -c "yarn install; yarn run gulp server"
  db:
    image: mysql:5.7.20
    ports: 
      - "3306:3306"
  environment:
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}

我可以连接到公开的服务端口:

  • 网站 - localhost:80
  • Webpack - localhost:8080
  • MySQL: - localhost:3306

如何使用nginx-proxy在同一个域上公开不同服务器的多个端口(?):

  • 网站 - example.dev:80
  • Webpack - example.dev:8080
  • MySQL: - example.dev:3306

这有效:

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  site:
    volumes:
      - .:/app
    build:
      dockerfile: Dockerfile.dev
      context: docker
    expose:
      - 80
    environment:
      VIRTUAL_HOST: ${VIRTUAL_HOST}

但这不是:

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  site:
    volumes:
      - .:/app
    build:
      dockerfile: Dockerfile.dev
      context: docker
    expose:
      - 80
    environment:
      VIRTUAL_HOST: ${VIRTUAL_HOST}

  webpack:
    image: node:6.12.0
    expose:
      - 8080
    environment:
      VIRTUAL_HOST: ${VIRTUAL_HOST}
      VIRTUAL_PORT: 8080
    volumes:
      - .:/app
    working_dir: /app
    command: bash -c "yarn install; yarn run gulp server"

我做错了什么?我该如何解决这个问题?

//Sorry for my worst English. Hope you'll understand me

更新

这只是一个例子。在未来,我将代理作为外部网络,并将服务连接到它。我不会在同一主机(VPS)上运行两个docker-compose“文件”。目的:在同一主机上生产和测试版本,使用相同的端口但不同的域。例如:

  • example.com - 网站
  • example.com:81 - PhpMyAdmin
  • test.example.com - 测试网站
  • test.example.com:81 - 用于测试的PhpMyAdmin

0 个答案:

没有答案
相关问题