Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker多级构建中使用多个端口_Docker_Selenium_Nginx_Dockerfile_Docker Machine - Fatal编程技术网

在Docker多级构建中使用多个端口

在Docker多级构建中使用多个端口,docker,selenium,nginx,dockerfile,docker-machine,Docker,Selenium,Nginx,Dockerfile,Docker Machine,我在docker中使用多级来执行测试任务。 基本映像为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

我在docker中使用多级来执行测试任务。 基本映像为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指令中指定的图像到下面所有命令的结果的所有内容


在您的例子中,它包含了所有内容,从image nginx:latest到file report.html都是从上一个构建阶段复制的,这意味着当您使用它运行容器时,端口4444上没有任何侦听内容,因此公开它是没有意义的。

还有其他方法可以实现这一点吗?作为一种解决方法,我安装了nginx并设置了多个端口。您可以创建一个包含Selenium和nginx的自定义映像。除此之外-不,没有办法组合多个Docker图像。