2017-10-20 121 views
1

我設置了這個組合文件,當我做所有事情都按預期工作時,但上週我們試圖將它交給其他開發人員用於開發時,它不再公開網絡和我的生活,我不知道爲什麼,大量的谷歌搜索沒有取得任何結果。Docker Compose不公開網絡端口

網絡是橋樑和DEV是唯一一個沒有工作,旋轉起來督促工作正常

version: '2' 
    services: 

    dev: 
     build: 
     context: ./ 
     volumes: 
     - ./:/app 
     ports: 
     - "8080:8080" 
     command: yarn start 

    prod: 
     build: 
     context: ./ 
     ports: 
     - "8080:5000" 
     command: node express.js 

下面是相關dockerfile

FROM remejuan/node-yarn:8.5.0 

# Override the base log level (info). 
ENV NPM_CONFIG_LOGLEVEL warn 

# Copy all local files into the image. 
RUN mkdir -p /app 
WORKDIR /app 
COPY ./ ./ 

# Install all dependencies of the current project. 
RUN yarn install --pure-lockfile 
RUN yarn cache clean 

# Install and configure `serve`. 
EXPOSE 8080 
EXPOSE 5000 

我已經消除了OS作爲因爲我們已經在2臺Windows 10機器上測試了它,運行最新的CE,與mac相同,我的機器運行的是ubuntu,prod可以運行在所有的機器上,但dev在日誌中沒有,但是在日誌中,我看到webpack在8080端口上運行。

使用docker run -ti -p 8080:8080手動跳轉也不起作用。

抓住任何其他可能的想法。

感謝

+0

爲什麼你在docker文件中暴露多個端口 –

+0

Prod 5000;開發8080 – RemeJuan

回答

1

你暴露你的容器相同的端口8080。這是行不通的。因爲兩個服務使用相同的端口。嘗試使用另一個端口的開發。 如果您尚未指定,您還可以在docker-compose文件中設置環境及其變量。應該明確指定環境來檢測你正在運行你的應用程序的哪個env

+0

謝謝,我遇到的所有碼頭都有它,但都無濟於事,但讓我認爲它可能是webpack。谷歌在這個詞中引用了我需要傳遞給webpack配置的其他東西,這些東西解決了它。謝謝 – RemeJuan