无法在MacOS的本地主机上链接Docker容器

时间:2019-01-11 22:30:41

标签: docker nginx docker-compose dockerfile

我花了很多时间试图让NGINX + Sinatra在Mac上的localhost上互相交谈。用dockerfile定义的Sinatra的docker容器可以毫无问题地加载到localhost:3000上。 NGINX容器(带有自定义default.conf文件)无法与我的应用程序进行上游通信。 docker-compose文件如下:

version: '3'
services:
  sinatra:
    build: app/
    ports: 
      - "3000:3000"

  nginx: 
    image: nginx:latest
    container_name: production_nginx
    volumes:
      - ./nginx/default.conf:/etc/nginx/default.conf
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - sinatra
    links:
      - sinatra

在nginx的default.conf中,我具有以下内容:

server {
    listen 80 default_server;

    access_log  /var/log/nginx/host.access.log  main;

    location / {
       proxy_pass http://sinatra:3000;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }    
}

我的理解是'link'指令将使我以这种方式引用sinatra服务。但是,它不起作用。我在Docker中配置的本地mac的共享路径将允许来自所有这些来源的文件,当我执行到各个容器中时可以看到它们。任何想法为什么这行不通?同样,sinatra服务在localhost:3000上响应,因此它必须与NGINX一起使用。谢谢你的指导。

0 个答案:

没有答案