我正在尝试用Seq日志启动一个容器,但我希望已经用设置了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容器完全启动之前执行了命令,所以建议我创建一个循环来执行命令。我试过这个:
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但是这个命令甚至没有被识别出来。有一种正确的方法可以在容器上循环命令并进行对接-组合?
发布于 2020-03-01 09:43:01
如果不覆盖码头入口点,就不能使用/bin/bash命令。有一种方法可以解决这个问题
码头工
version: '3.7'
services:
logseqcli:
build: .
depends_on:
- logseq
logseq:
image: datalust/seq:5.1
environment:
- ACCEPT_EULA=Y
ports:
- 2000:80
- 4000:5341entry_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码头文件
FROM datalust/seqcli:5.1.251
RUN apt-get update && apt-get install -y curl
COPY ./docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]https://stackoverflow.com/questions/60469674
复制相似问题