首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建带有内容的minio停靠器图像

创建带有内容的minio停靠器图像
EN

Stack Overflow用户
提问于 2022-07-07 22:50:07
回答 1查看 803关注 0票数 1

我想为集成测试目的构建一个小型码头容器。

我想在我的Dockerfile中做以下工作。

创建minio container

  • Create一个测试桶

  • 将少量的测试数据复制到测试桶

  • 中,启动minio服务

试验数据

代码语言:javascript
复制
./test-data/foo.txt
./test-data/bar.txt
代码语言:javascript
复制
FROM minio/minio

RUN mkdir -p /buckets/my-bucket 

COPY test-data /buckets/my-bucket/test-data"

EXPOSE 9000 9001

CMD [ "minio", "server", "/buckets", "--address", ":9000", "--console-address", ":9001" ]

我知道我可以在一个单独的容器中运行mc来填充我的桶,但这需要一点编排。

有办法在Dockerfile中完成这些步骤吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-08 02:04:57

Dockerfile只是一个shell commands...so的集合,您几乎可以做任何您想做的事情。例如:

代码语言:javascript
复制
FROM docker.io/minio/minio:latest

COPY --from=docker.io/minio/mc:latest /usr/bin/mc /usr/bin/mc
RUN mkdir /buckets
RUN minio server /buckets & \
    server_pid=$!; \
    until mc alias set local http://localhost:9000 minioadmin minioadmin; do \
        sleep 1; \
    done; \
    mc mb local/bucket1; \
    echo this is file1 | mc pipe local/bucket1/file1; \
    echo this is file2 | mc pipe local/bucket1/file2; \
    kill $server_pid

CMD ["minio", "server", "/buckets", "--address", ":9000", "--console-address", ":9001"]

如果我们使用上面的Dockerfile构建一个名为minio-demo的映像,然后启动如下所示的容器:

代码语言:javascript
复制
$ docker run --rm -p 127.0.0.1:9000:9000 -p 127.0.0.1:9001:9001  minio-demo

我们看到:

代码语言:javascript
复制
$ mc alias set demo http://localhost:9000 minioadmin minioadmin
$ mc ls demo
[2022-07-07 22:01:35 EDT]     0B bucket1/
$ mc ls demo/bucket1
[2022-07-07 22:01:35 EDT]    14B STANDARD file1
[2022-07-07 22:01:35 EDT]    14B STANDARD file2
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72904999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档