首页 > 解决方案 > 如何在 docker-compose 文件中获取和设置随机服务端口作为 env var?

问题描述

这是 docker-compose.yml 的示例:

# docker-compose.yml

version: '3'

services:
  web:
    image: ghost:latest
    ports:
      - 0:2368
    environment:
      url: http://ghost.localhost:30001

我想获取服务随机端口并在urlenv 变量中设置如下:

url: "http://ghost.localhost:{{.Service.Port}}"

最终目标是在不手动设置端口的情况下部署多个堆栈。

docker stack deploy --compose-file=docker-compose.yml ghost1
docker stack deploy --compose-file=docker-compose.yml ghost2
docker stack deploy --compose-file=docker-compose.yml ghost3

这是可能的 ?

标签: dockerdocker-composedocker-swarmdocker-stack

解决方案


不,这现在是不可能的。有一个功能请求,但它仍然是开放的(它已经超过 4 年了)。


推荐阅读