Необходима команда l oop при запуске контейнера - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь запустить контейнер с Seq log , но я хочу запустить его уже с установленным ключом API. Итак, я попытался использовать другой контейнер для использования командной строки:

version: '3.7'

services:
  logseqcli:
    image: datalust/seqcli:5.1.251
    command: apikey create --title='newapikey' --token='123456' --server=http://logseq
    depends_on:
      - logseq
  logseq:
    image: datalust/seq:5.1
    environment:
      - ACCEPT_EULA=Y
    ports:
      - 2000:80
      - 4000:5341

Я получаю сообщение об ошибке «Отказано в соединении» из logseqcli контейнера; Служба поддержки Seq сказала, что это потому, что logseqcli выполнил команду до того, как контейнер logseq полностью запустился, поэтому я предложил создать al oop для выполнения команды. Я пробовал это:

logseqcli:
    image: datalust/seqcli:5.1.251
    command: >
      /bin/bash -c "
        seqcli apikey create --title='newapikey' --token='123456' --server=http://logseq;
        while $$? != 0;
        do
          seqcli apikey create --title='newapikey' --token='123456' --server=http://logseq;
          sleep 1;
        done;"
    depends_on:
      - logseq

Но с этим команда даже не идентифицирована. Существует правильный способ l oop команда для контейнера с docker -compose?

1 Ответ

1 голос
/ 01 марта 2020

вы не можете использовать команду /bin/bash без перезаписи точки входа docker. Вот один из способов исправить это

docker -compose

version: '3.7'

services:
  logseqcli:
    build: .
    depends_on:
      - logseq
  logseq:
    image: datalust/seq:5.1
    environment:
      - ACCEPT_EULA=Y
    ports:
      - 2000:80
      - 4000:5341

entry_point

#!/bin/bash -e

SERVICE="http://logseq"

until curl -fs $SERVICE  > /dev/null; do
  >&2 echo "$SERVICE is unavailable - sleeping"
  sleep 2
done
>&2 echo "$SERVICE is up"

exec /bin/seqcli/seqcli apikey create --title='newapikey' --token='1kjdhfsdldkfa093482092823456' --server=$SERVICE

exit 0

dockerfile

FROM datalust/seqcli:5.1.251

RUN apt-get update && apt-get install -y curl

COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]

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