Docker撰写:将随机容器端口传递给环境变量

时间:2019-04-29 10:15:46

标签: docker docker-compose

是否可以在docker compose文件中将有关NetworkSetting的容器信息设置到环境变量中?

我有以下docker-compose.yml文件:

version: '3.7'
services:
  sdt-proxy:
    image: myimage
    ports:
      - 32770-32780:8181
    environment:
      - SERVER_PORT=8181

它将端口8181映射到32770-32780中的随机端口。当我使用docker-compose up运行容器时,我可以使用docker inspect查看映射的端口:

.....
 "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "83e6933aaf7b09b8ae1238d3dbb71bdd495c14927a5a509b332afc17cda6d854",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "8181/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "32771"
                    }
                ]
            },
...

因此,我知道内部端口8181(我的应用程序在容器中运行)已映射到端口32771。

我需要将此信息(容器端口32771)传递给我的应用程序,是否可以在docker-compose文件中执行类似的操作?

version: '3.7'
services:
  sdt-proxy:
    image: myimage
    ports:
      - 32770-32780:8181
    environment:
      - SERVER_PORT=8181
      - MY_CONTAINER_PORT= <the running container port 32771>

0 个答案:

没有答案