Существуют индексы проверки упругого поиска, возвращает true при первом запуске - PullRequest
0 голосов
/ 08 февраля 2020

У меня docker-compose работает 2 контейнера, каждый со своим сервисом, node и elasticsearch.

app. js

...
const isElasticReady = await elastic.checkConnection();
if (isElasticReady) {
    const elasticIndex = await elastic.esclient.indices.exists({index:elastic.index});
    if (!elasticIndex.body) {
        await elastic.createIndex(elastic.index);
        await elastic.setMapping();
        await data.populateDatabase();
    }
}
...

Всякий раз, когда я запускаю docker-compose up, esclient.indices.exists всегда возвращает false, даже если индекс уже существует. В результате я всегда получаю resource_already_exists_exception.

Странно то, что я использую nodemon для разработки, и всякий раз, когда я делаю изменения во время разработки, esclient.indices.exists возвращает true. Так что проблема возникает только когда я запускаю docker-compose up. Я подозреваю, что что-то происходит асинхронно, но я не уверен, что.

*docker -compose.yml - depends_on установлено.

version: '3.6'
services:
    api:
        image: nodeservice/node:10.15.3-alpine
        container_name: nodeservice
        build: .
        ports:
            - 3000:3000
        environment:
            - NODE_ENV=local
            - ES_HOST=elasticsearch
            - NODE_PORT=3000
            - ELASTIC_URL=http://elasticsearch:9200
        volumes:
            - .:/usr/src/app
            - /usr/src/app/node_modules
        command: npm run dev
        links:
            - elasticsearch
        depends_on: 
            - elasticsearch
        networks:
            - esnet
    elasticsearch:
        container_name:my_elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:7.0.1
        volumes:
            - esdata:/usr/share/elasticsearch/data
        environment: 
            - bootstrap.memory_lock=true
            - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
            - discovery.type=single-node
        logging:
            driver: none
        ports:
            - 9300:9300
            - 9200:9200
        networks:
            - esnet
volumes:
    esdata:
networks:
    esnet:

Любые намеки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...