Docker MinIO entrypoint



我有一个最初在Mac上设置的项目,我在Windows上,它是一个Docker项目,运行Node、Kafka和其他一些容器,其中一个是MinIO。除了MinIO之外,一切都按预期工作,我得到了以下错误:

createbuckets_1  | /bin/sh: nc: command not found

Docker编写代码:

createbuckets:
image: minio/mc
networks:
- localnet
depends_on:
- minio
entrypoint: >
/bin/sh -c "
while ! nc -zv minio 9000; do echo 'Wait minio to startup...' && sleep 0.1; done; sleep 5;
/usr/bin/mc config host add myminio http://minio:9000 X X;
/usr/bin/mc rm -r --force myminio/cronify/details;
/usr/bin/mc mb myminio/cronify/details;
/usr/bin/mc policy set download myminio/cronify/details;
exit 0;"

X在哪里,凭证应该在哪里。几个星期以来,我一直在努力寻找解决办法。

我还尝试将入口点从/bin/sh -c更改为/bin/bash -c#!/bin/bash -c#!/bin/sh -c,除了".../bin/bash: nc: command not found",我得到了相同的错误。

Dockerfile包含:

FROM confluentinc/cp-kafka-connect

我也遇到过类似的问题,但我只在docker容器上运行minio(没有docker compose(。然而,代码看起来很相似,我认为这应该可以工作。您只需要更改docker撰写文件中的一行即可。此nc -zv minio 9000应替换为curl -I http://minio:9000/minio/health/live

下面是整个剪辑:

createbuckets:
image: minio/mc
networks:
- localnet
depends_on:
- minio
entrypoint: >
/bin/sh -c "
while ! curl -I http://minio:9000/minio/health/live; do echo 'Wait minio to startup...' && sleep 0.1; done; sleep 5;
/usr/bin/mc config host add myminio http://minio:9000 X X;
/usr/bin/mc rm -r --force myminio/cronify/details;
/usr/bin/mc mb myminio/cronify/details;
/usr/bin/mc policy set download myminio/cronify/details;
exit 0;"

我不完全确定你在这里问什么,但如果你问错误消息本身,它会告诉你nc没有安装(因为它不会在容器中(。我也不清楚minio在哪个容器中运行。假设容器是从minio/minio中提取的,那么它将安装curl,你可以只使用健康检查端点,而不是尝试使用nc-https://docs.min.io/minio/baremetal/monitoring/healthcheck-probe.html#minio-healthcheck api。如果它不是一个minio容器,你只需要确保它安装了curl(或者nc,如果出于某种原因你决定使用它的话(。

最新更新