Dockerize Phoenix应用程序并使用虚拟主机

Dockerize Phoenix应用程序并使用虚拟主机,docker,docker-compose,phoenix-framework,Docker,Docker Compose,Phoenix Framework,我正在尝试设置我的环境,使用Docker开发Phoenix应用程序 在这一点上,一切都很好,除了虚拟主机部分,我想通过访问app.dev而不是localhost:4000来访问我的应用程序 我正在使用docker-compose.yml文件: version: '2' services: proxy: image: jwilder/nginx-proxy ports: - 80:80 postgres: image: postgres:lates

我正在尝试设置我的环境,使用Docker开发Phoenix应用程序

在这一点上,一切都很好,除了虚拟主机部分,我想通过访问
app.dev
而不是
localhost:4000
来访问我的应用程序

我正在使用docker-compose.yml文件:

version: '2'

services:

  proxy:
    image: jwilder/nginx-proxy
    ports:
      - 80:80

  postgres:
    image: postgres:latest
    restart: always
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=root

  web:
    build: .
    command: mix phx.server
    volumes:
      - .:/app
    ports:
      - 4000:4000
    depends_on:
      - postgres
    environment:
      - MIX_ENV=dev
      - VIRTUAL_HOST=app.dev
      - VIRTUAL_PORT=4000
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=root
    links:
      - postgres
当我尝试访问app.dev时,无法访问我的网站

编辑#1 对于使用虚拟主机,我真的需要反向代理吗?或者一个简单的dns或者其他什么就足够了

编辑#2
好的,这很奇怪,当我卷曲app.dev时,我得到了html内容,但我无法从浏览器访问它(app.dev)。

你不需要
nginx
,你只需要将
app.dev
添加到你的
/etc/hosts
文件中

127.0.0.1 app.dev

您不需要反向代理,但如果您添加了更多服务,那么在适当的位置安装反向代理就很好了。您是否已将
app.dev
添加到主机文件中?在开发中使用jwilder/nginx代理时。。有时,当容器快速停止和启动时,它会变得混乱
docker compose restart proxy
快速解决了这个问题。感谢您的回答,但结果是一样的。根本不起作用,有一个例子使用它,但我不知道我搞砸了什么