2

docker-compose.yml の例を次に示します。

# docker-compose.yml

version: '3'

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

サービスのランダムなポートを取得し、次のurlように env 変数内に設定したいと思います。

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

それが可能だ ?

4

3 に答える 3

0

.env ファイルを使用して、docker-compse.yml で動的な値を定義します。ポートまたはその他の値です。

サンプル docker-compose:

testcore.web:
       image: xxxxxxxxxxxxxxx.dkr.ecr.ap-northeast-2.amazonaws.com/testcore:latest
       volumes: 
            - c:/logs:c:/logs
       ports:
            - ${TEST_CORE_PORT}:80
       environment:
            - CONSUL_URL=http://${CONSUL_IP}:8500 
            - HOST=${HOST_ADDRESS}:${TEST_CORE_PORT}

.env ファイル内で、これらの変数の値を定義できます。

CONSUL_IP=172.31.28.151
HOST_ADDRESS=172.31.16.221
TEST_CORE_PORT=10002
于 2018-10-06T17:36:17.760 に答える