#elasticsearch #gitlab #gitlab-ci
#elasticsearch #gitlab #gitlab-ci
Вопрос:
Я пытаюсь запустить elasticsearch 7.0.1 в моем конвейере gitlab, вот фрагмент конфигурации:
test:
stage: test
services:
- name: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
alias: elastic
variables:
cluster.initial_master_nodes: elastic
node.name: elastic
Но когда я запускаю его, я получаю следующее сообщение об ошибке:
/bin/bash: line 82: export: `cluster.initial_master_nodes=elastic': not a valid identifier
Похоже, что Gitlab использует bash для экспорта переменных, но bash не допускает точек в именах. Я пытался экранировать с помощью двойного подчеркивания, но не сработало. Есть предложения?
Ответ №1:
Имена переменных с точкой действительно недопустимы в sh и bash.
В официальной документации есть решение (работает с версии 7.15):
Change the setting name to uppercase
Prefix it with ES_SETTING_
Escape any underscores (_) by duplicating them
Convert all periods (.) to underscores (_)
Попробуйте использовать имена переменных (обратите внимание на двойные подчеркивания).:
ES_SETTING_CLUSTER_INITIAL__MASTER__NODES: elastic
ES_SETTING_NODE_NAME: elastic
Комментарии:
1. вы пропустили экранирование подчеркиваний с помощью двойного подчеркивания (я отредактировал его в ответе). Спасибо.