簡體   English   中英

在 Docker 多階段構建中使用多個端口

[英]Use multiple ports in Docker multistage build

我在 docker 中使用 MultiStage 來執行測試任務。 基礎鏡像為 Selenium,暴露端口 4444,暫存鏡像為 nginx 用於其他操作。

nginx 暴露了端口 80。 如果我必須公開兩個端口,則只有端口 80 被公開,而不是 4444 使用時

docker run -p 80:80 -p 4444:4444 someimage:2

Dockerfile:

FROM selenium/standalone-firefox AS base
RUN python3 try.py

FROM nginx:alpine
COPY --from=base /report.html /usr/share/nginx/html

您誤解了多階段構建的工作原理。

您的最終圖像包含您在Dockerfile中指定的每張圖像的所有內容。

確實包含最后一個FROM指令中指定的圖像的所有內容以及以下所有命令的結果。

在你的情況下,它包含從圖像nginx:latest和文件report.html復制自上一個構建階段的所有內容 - 這意味着當你使用它來運行容器時,沒有任何東西在端口 4444 上偵聽,所以暴露它是沒有意義的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM