Docker-compose: проблема при запуске приложения весенней загрузки и конфигурации весеннего облака

Я хочу запустить проект конфигурации Spring Boot и Spring Cloud для развертывания в Docker. Ниже приведен файл docker-compose.yml. Но я получаю следующую ошибку при запуске файла.

Ошибка:

ERROR: yaml.parser.ParserError: while parsing a block mapping
  in "./docker-compose.yml", line 4, column 4
expected <block end>, but found '<block mapping start>'
  in "./docker-compose.yml", line 48, column 5

Ниже мой файл докер-compose.yml:

    version: '3'

    services:
          discovery:
            image: pl.app.service/discovery-service:0.0.1-SNAPSHOT
            ports:
              - 8061:8061
          config:
            image: pl.app.service/config-service:0.0.1-SNAPSHOT
            volumes:
              - ./config-data:/config-data
            environment:
               - JAVA_OPTS=
               -DEUREKA_SERVER=http://discovery:8761/eureka
               -Dspring.cloud.config.server.native.searchLocations=/config-data
             depends_on:
              - discovery
             ports:
              - 8088:8088

      proxy-service:
        image: pl.app.service/proxy-service:0.0.1-SNAPSHOT
        environment:
          - JAVA_OPTS=
            -DEUREKA_SERVER=http://discovery:8761/eureka
        depends_on:
          - discovery
          - config
        ports:
            -8060:8060

      employee-service:
        image: pl.app.service/employee-service:0.0.1-SNAPSHOT
        environment:
          - JAVA_OPTS=
            -DEUREKA_SERVER=http://discovery:8761/eureka
            -Dspring.profiles.active=dev
        restart: on-failure
        depends_on:
          - discovery
          - config
        ports:
            -8090:8090

      department-service:
          image: pl.app.service/organization-service:0.0.1-SNAPSHOT
        environment:
          - JAVA_OPTS=
            -DEUREKA_SERVER=http://discovery:8761/eureka
            -Dspring.profiles.active=dev
        restart: on-failure
        depends_on:
          - discovery
          - config
        ports:
            -8091:8091

       organization-service:
          image: pl.app.service/organization-service:0.0.1-SNAPSHOT
        environment:
          - JAVA_OPTS=
            -DEUREKA_SERVER=http://discovery:8761/eureka
            -Dspring.profiles.active=dev
        restart: on-failure
        depends_on:
          - discovery
          - config
        ports:
            -8092:8092

Я пробовал несколько изменений отступов для файла docker-compose.yml.

Упомянутые сервисы уже созданы maven. Нужна помощь в запуске docker composer для приложения.

0
0
890
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть несколько ошибок.

  1. Убедитесь, что вы используете только пробелы для отступов (вместо табуляции). Если вам интересно, почему вкладки не работают в файлах yaml, посмотрите Файл YAML не может содержать вкладки в качестве отступа
  2. поместите свои порты в строки (например, - "8060:8060" вместо - 8060:8060)
  3. Я думаю, вы неправильно используете переменные среды. Они должны/должны выглядеть, например:

environment: - JAVA_OPTS - EUREKA_SERVER=http://discovery:8761/eureka - ANOTHER_ENV_VARIABLE=/config-data

Подробности смотрите в документации: https://docs.docker.com/compose/environment-variables/

После исправления вашего docker-compose.yml вы можете проверить свой файл, запустив docker-compose config внутри каталога, где находится ваш docker-compose.yml.

Спасибо за ответ. Я сделал изменения, как вы упомянули выше. Но я все еще получаю сообщение об ошибке для следующих двух строк -DEUREKA_SERVER=http://discovery:8761/eureka/ -Dspring.cloud.config.server.native.searchLocations = "/config‌​-data" Ошибка: `ОШИБКА: yaml.scanner.ScannerError: при сканировании простого ключа в «./docker-compose.yml», строка 13, столбец 6 не может найти ожидаемое ' :' в "./docker-compose.yml", строка 14, столбец 6 '

escort 09.04.2019 11:35

Да, это то, что я упомянул под 3.. Вы не можете использовать такие переменные среды: -DEUREKA_SERVER=http://discovery:8761/eureka/. Должно быть - EUREKA_SERVER=http://discovery:8761/eureka. Посмотрите на синтаксис. Между - и именем переменной должен быть пробел. Имейте в виду, что здесь вы определяете переменные среды. Похоже, вы путаете переменные среды и системные свойства Java (-D).

codinghaus 09.04.2019 11:43

Еще раз спасибо. Последняя ошибка, которую я получаю: ОШИБКА: «Файл Compose». Подскажите, пожалуйста, как настроить параметры конфигурации.

escort 09.04.2019 12:05

Пожалуйста, взгляните еще раз на свои отступы. config — это не вариант, а название службы (например, discovery, organization-service, ...). Он должен быть на том же уровне отступа, что и другие сервисы. Как говорит ошибка, докер интерпретирует config как параметр с именем config (которого не существует). Но вместо этого config — это имя службы.

codinghaus 09.04.2019 12:09

Спасибо большое. Я очень благодарен вам за то, что вы быстро ответили и решили проблемы !!! При запуске «docker-compose up -d» я получаю сообщение об ошибке, например, ERROR: Get pl.app.service/v1/_ping: dial tcp: lookup pl.piomin.service на 10.168.57.53:53: нет такого хоста Пожалуйста, помогите мне в этом. Заранее спасибо !! :)

escort 09.04.2019 13:19

Пожалуйста. Боюсь, я понятия не имею о последней ошибке, которую вы опубликовали. В любом случае: поскольку ваша новейшая проблема больше не связана с синтаксическими ошибками в отношении вашего docker-compose.yml (а с вашей конкретной настройкой), я бы посоветовал вам открыть новый отдельный вопрос для этой самой последней ошибки при запуске docker-compose up (со всей информацией, которую вы может дать то, что может помочь другим помочь вам, например, откуда это ping)

codinghaus 09.04.2019 13:56

Другие вопросы по теме