我有一个最初在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
,如果出于某种原因你决定使用它的话(。