【问题标题】:Dockerize Phoenix Application and use a virtual hostDockerize Phoenix 应用程序并使用虚拟主机
【发布时间】:2017-07-24 18:27:06
【问题描述】:

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

到目前为止,一切都很好,除了 VIRTUAL_HOST 部分,我想通过访问 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 对于使用 VIRTUAL_HOST,我真的需要反向代理吗?还是一个简单的 dns 之类的就足够了?

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

【问题讨论】:

  • 您不需要反向代理,但是当/如果您添加更多服务时,它会很好。您是否将app.dev 添加到您的主机文件中?在 dev.. 中使用 jwilder/nginx-proxy 时,有时会在容器停止和快速启动时感到困惑。 docker-compose restart proxy 很快解决了这个问题。

标签: docker docker-compose phoenix-framework


【解决方案1】:

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

127.0.0.1 app.dev

【讨论】:

猜你喜欢
  • 2016-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-05-03
  • 2013-01-13
  • 1970-01-01
  • 1970-01-01
  • 2022-11-18
  • 2016-07-10
相关资源
最近更新 更多