Docker compose показывает неверную ошибку порта, когда я устанавливаю порты в качестве переменных env - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть простой файл docker-compose, который запускает мое приложение весенней загрузки.

version: '3'
services:
  applic:
    build:
      context: .
      dockerfile: local.Dockerfile
      args:
        - DEBUG_PORT=${DEBUG_PORT}
        - DEBUG_FLAG=${DEBUG_FLAG}
    environment:
      - "SPRING_PROFILES_ACTIVE=local"
      - "DEBUG_PORT=5005"
      - "DEBUG_FLAG=true"
    ports:
      - "8083:8083"
      - $DEBUG_PORT:$DEBUG_PORT
    depends_on:
      - mysql
    volumes:
      - "../:/mnt"

, когда я запускаю его с помощью команды docker-compose up --build, он показывает мне эту ошибку:

applic.ports is invalid: Invalid port ":", should be [[remote_ip:]remote_port[-remote_port]:]port[/protocol]

Что я сделал не так?Я пробовал много решений из Интернета, но ничего не помогло.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Похоже на ошибку расширения переменной при запуске контейнера.

   ports:
      - "8083:8083"
      - "${DEBUG_PORT}:${DEBUG_PORT}"

создать .env в корне вашего файла компоновки.

DEBUG_PORT=80

Согласно Какполучить порт docker-compose из env_file? вопрос, который нужно определить DEBUG_PORT в .env.

Опция env_file будет устанавливать переменные окружения только в самом контейнере Docker.Не на хосте, который используется во время компоновки.

Чтобы определить свой порт как env var, вы должны использовать файл .env, как описано здесь

В вашем случае создайте файл .env, который содержит: *

DEBUG_PORT=5000

0 голосов
/ 26 сентября 2019

измените это на:

"${DEBUG_PORT}:${DEBUG_PORT}"

и это:

args:
        - DEBUG_PORT=${DEBUG_PORT}
        - DEBUG_FLAG=${DEBUG_FLAG}

, чтобы работать, вам нужно сначала экспортировать их.

export DEBUG_PORT=xxxx && export DEBUG_FLAG=xxxx && docker-compose up --build
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...