Couchbase docker точка входа с настройкой кластера - PullRequest
1 голос
/ 20 февраля 2020

Я ищу способ запустить couchbase (6.0.3) в docker, а затем, как только он будет готов, запустите заведомо исправную команду couchbase-cli (см. Ниже), чтобы настроить кластер без меня не нужно ничего делать, кроме запуска контейнера.

couchbase-cli cluster-init --cluster "couchbase://127.0.0.1" --cluster-name "couchbase" --cluster-username "admin" --cluster-password "password" --services "data,index,query" --cluster-ramsize 500 --cluster-index-ramsize 256 --index-storage-setting "memopt";

До сих пор я пытался решить эту проблему, используя ключевое слово docker -compose command, как показано ниже

version: '2.4'

services:
  couchbase:
    image: couchbase:6.0.3
    container_name: "couchbase"
    restart: always
    ports:
      - 8091-8094:8091-8094
      - 11210:11210
    command: >
      /bin/bash -c "
        until curl -I -s http://localhost:8091/ui/index.html
        do
            echo 'Waiting for Couchbase to start (retrying in 3 seconds)...'
            sleep 3
        done
        couchbase-cli cluster-init --cluster "couchbase://127.0.0.1" --cluster-name "couchbase" --cluster-username "admin" --cluster-password "password" --services "data,index,query" --cluster-ramsize 500 --cluster-index-ramsize 256 --index-storage-setting "memopt"
      "

Это привело к в, казалось бы, бесконечном l oop печати Waiting for Couchbase to start (retrying in 3 seconds)... с couchbase, недоступной на localhost: 8091.

Затем я изменил tacti c и решил создать свой собственный Dockerfile на основе образа couchbase, изменив точка входа для включения команды couchbase-cli следующим образом:

Dockerfile:

FROM couchbase:6.0.3
RUN mkdir files
COPY initcouchbase.sh files/
RUN chmod +x files/initcouchbase.sh
ENTRYPOINT ./files/initcouchbase.sh

initcouchbase. sh

#!/usr/bin/env bash

/entrypoint.sh couchbase-server &

until curl -I -s http://localhost:8091/ui/index.html
do
    echo 'Waiting for Couchbase to start (retrying in 3 seconds)...'
    sleep 3
done

couchbase-cli cluster-init --cluster "couchbase://127.0.0.1" --cluster-name "couchbase" --cluster-username "admin" --cluster-password "password" --services "data,index,query" --cluster-ramsize 500 --cluster-index-ramsize 256 --index-storage-setting "memopt"

Такого рода работы, когда Журналы docker показывают, что кластер был настроен с сообщением об успешном выполнении команды cli (SUCCESS: Cluster initialized), и в течение нескольких минут можно войти в локальный кластер. Однако, спустя мгновение что-то решает снова запустить (я предполагаю, что initcouchbase.sh запускается снова и снова), что делает базу бездействия снова недоступной в течение нескольких секунд, пока l oop не завершится каждый раз.

Кто-нибудь пытался это сделать и победил? Я не вижу большого содержания по этому конкретному случаю использования здесь, кроме того, что приведено ниже, но ответ не охватывает вопросы моего вопроса.

конфигурация couchbase на docker

...