2016-06-12 101 views
1

我使用碼頭工和碼頭工合成一個clojure和一個節點應用程序,旁邊postgres。如何配置docker撰寫正確公開端口?

該項目包含在以下文件夾結構中。

project/ 
-- app/ 
-- -- Dockerfile 
-- frontend/ 
-- -- /Dockerfile 
-- docker-compose.yml 

app/Dockerfile看起來是這樣的...

FROM clojure:latest 
COPY . /usr/src/app 
WORKDIR /usr/src/app 

EXPOSE 9000 

CMD ["lein", "run", "migrate", "&&","lein", "run"] 

frontend/Dockerfile看起來是這樣的...

FROM node:5 
COPY . /usr/src/app 
WORKDIR /usr/src/app 
RUN npm install 

EXPOSE 8080 

CMD ["npm", "start"] 

最後是搬運工,compose.yml看起來像...

frontend: 
    image: bradcypert/node 
    volumes: 
    - ./frontend:/usr/src/frontend 
    ports: 
    - "8080:8080" 

backend: 
    image: bradcypert/clojure 
    volumes: 
    - ./app:/usr/src/backend 
    ports: 
    - "9000:9000" 
    links: 
    - postgres 

postgres: 
    image: postgres 
    ports: 
    - "5432:5432" 

後端由於單獨的原因失敗,但前端似乎正在運行成功,被說,我無法擊中localhost:8080並看到該應用程序。我需要做些什麼才能做到這一點?

在此先感謝。

只是爲了澄清,正在運行的命令是docker-compose up

+0

你正在使用什麼操作系統? –

+0

我目前使用的是Mac OSX –

+0

如果你使用的是docker工具箱,你需要的ip是192.168.99.100:8080。這是docker工具箱虛擬機的默認IP地址 –

回答

4

隨着boot2docker(在Mac或Windows),從localhost訪問任何端口,你必須爲了配置您的VirtualBox虛擬機端口轉發那端口從虛擬機到主機。

您的端口映射是正確的,但您仍然需要讓您的主機(Mac)顯示您想要從本地主機(Mac)訪問的一個端口。

Andrew Odewahn例如,見「Using boot2docker to run Docker on a Mac or Windows」:

enter image description here

這樣的話,你不必找出你的機器的IP是什麼。
(你可以在docker-machine ls後面看到docker-machine ip <name>