我必须虚拟化由三个组件组成的内部应用程序 . 每个组件都有其专用端口 . 为方便起见,我想创建一个Dockercompose,其中“expose”设置为var(曝光在docker-compose中折旧,因此无法使用),以便创建三个图像 .

我创建了以下内容

Dockerfile:

FROM centos7 [...] EXPOSE $ EXPOSE_PORT ENTRYPOINT [“/ entrypoint.sh”]

docker-compose.yml:

版本:“3”服务:image:image1 [...]环境:EXPOSE_PORT:“80”depends_on: - image2 - image3 image:image2 [...]环境:EXPOSE_PORT:“1298”image:image3 [.. . ]环境:EXPOSE_PORT:“1299”

但是当我运行'docker stack deploy -test -c docker-compose.yml'时,端口没有正确设置,并且image1无法与image2和image3交换 .

如何使用专用端口部署堆栈?