2017-07-22 48 views
0

我试图设置我的环境来开发使用Docker的Phoenix应用程序。Dockerize Phoenix应用程序并使用虚拟主机

Unitil至此一切都很好,除了VIRTUAL_HOST的一部分,我想通过访问app.dev而不是localhost:4000访问我的应用程序。

我使用这个搬运工,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 好吧,这很奇怪,当我卷曲app.dev我得到的HTML内容,但我不能从浏览器(app.dev)访问它。

+0

您不需要反向代理服务器,但是在/添加更多服务时已经到位。您是否已将'app.dev'添加到您的hosts文件中?在dev中使用jwilder/nginx-proxy时,有时会在容器停止并快速启动时感到困惑。 'docker-compose restart proxy'解决了这个问题。 – Grimmy

回答

0

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

127.0.0.1 app.dev 
+0

谢谢你的回答,但结果是一样的。根本不起作用,有这个例子使用它https://github.com/maxcnunes/elixir-phoenix-rest-api/blob/master/docker-compose.yml但我不知道我是什么搞乱 – kayne

相关问题