Я хочу запустить проект конфигурации 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 для приложения.
Есть несколько ошибок.
- "8060:8060"
вместо - 8060:8060
)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.
Да, это то, что я упомянул под 3.
. Вы не можете использовать такие переменные среды: -DEUREKA_SERVER=http://discovery:8761/eureka/
. Должно быть - EUREKA_SERVER=http://discovery:8761/eureka
. Посмотрите на синтаксис. Между -
и именем переменной должен быть пробел. Имейте в виду, что здесь вы определяете переменные среды. Похоже, вы путаете переменные среды и системные свойства Java (-D).
Еще раз спасибо. Последняя ошибка, которую я получаю: ОШИБКА: «Файл Compose». Подскажите, пожалуйста, как настроить параметры конфигурации.
Пожалуйста, взгляните еще раз на свои отступы. config
— это не вариант, а название службы (например, discovery
, organization-service
, ...). Он должен быть на том же уровне отступа, что и другие сервисы. Как говорит ошибка, докер интерпретирует config
как параметр с именем config (которого не существует). Но вместо этого config — это имя службы.
Спасибо большое. Я очень благодарен вам за то, что вы быстро ответили и решили проблемы !!! При запуске «docker-compose up -d» я получаю сообщение об ошибке, например, ERROR: Get pl.app.service/v1/_ping: dial tcp: lookup pl.piomin.service на 10.168.57.53:53: нет такого хоста Пожалуйста, помогите мне в этом. Заранее спасибо !! :)
Пожалуйста. Боюсь, я понятия не имею о последней ошибке, которую вы опубликовали. В любом случае: поскольку ваша новейшая проблема больше не связана с синтаксическими ошибками в отношении вашего docker-compose.yml (а с вашей конкретной настройкой), я бы посоветовал вам открыть новый отдельный вопрос для этой самой последней ошибки при запуске docker-compose up
(со всей информацией, которую вы может дать то, что может помочь другим помочь вам, например, откуда это ping
)
Спасибо за ответ. Я сделал изменения, как вы упомянули выше. Но я все еще получаю сообщение об ошибке для следующих двух строк
-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 '