Sev*_*ths 6 containers yaml docker minio github-actions
我正在尝试创建一个 Minio/S3 容器,以便我可以在 github 上运行我的测试套件作为操作。我目前有以下内容:
name: Run Tests
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-18.04
services:
postgres:
...
minio:
image: minio/minio
volumes:
- /data
ports:
- 9000:9000
env:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
options: --entrypoint "minio server /data" --health-cmd "curl -f http://localhost:9000/minio/health/live" --health-interval 10s --health-timeout 5s --health-retries 5
steps:
...
Run Code Online (Sandbox Code Playgroud)
我尝试了以下排列来使 minio 容器正常工作,但没有成功:
volumes:
- ./data:/data
volumes:
- ./:/data
volumes:
- .:/data
volumes:
- /data:/data
Run Code Online (Sandbox Code Playgroud)
我什至尝试过:
options: --entrypoint "mkdir /data; minio server /data" ...
options: --entrypoint "minio server /tmp" ...
options: --entrypoint ["minio server", "/tmp"] ...
Run Code Online (Sandbox Code Playgroud)
我尝试使用该-v标志在该标志之前安装卷--entrypoint。
options: -v /s3_data:/data --entrypoint "minio server /data" ...
options: -v ${{ github.workspace }}/s3_data:/data --entrypoint "minio server /data" ...
options: -v ${{ github.workspace }}/s3_data:/data:rw --entrypoint "minio server /data" ...
Run Code Online (Sandbox Code Playgroud)
试图让它发挥作用。但不幸的是我得到:
starting container process caused: exec: "minio server /data": stat minio server /data: no such file or directory: unknown
Run Code Online (Sandbox Code Playgroud)
而且我无法minio server在没有任何参数的情况下运行:(
存在一个正在进行的 GitHub Actions 社区线程,涉及缺乏对设置的支持jobs.<job_id>.services.<service_id>.command,并且
这个现有问题与您的问题非常相似。
您可以按照@ahasbini的建议扩展官方映像,然后构建并将其推docker image送到Docker 注册表image,并在GitHub Actions 中使用您自己的映像jobs.<job_id>.services.<service_id>.image。例如:
这Dockerfile:
FROM minio/minio
CMD ["server", "/data", "--address=0.0.0.0:9000"]
Run Code Online (Sandbox Code Playgroud)
注意:您可以使用
lazybit/minio我为此答案构建的图像。
规格job.<job_id>.services.<service_id>:
FROM minio/minio
CMD ["server", "/data", "--address=0.0.0.0:9000"]
Run Code Online (Sandbox Code Playgroud)
注意事项:
- 这些
minio/minio映像当前没有HEALTHCHECK指令集 (docker inspect minio/minio:latest --format {{.Config.Healthcheck}}),因此我们需要在开始运行之前设置--health-cmd以jobs.<job_id>.services.<service_id>.options命中服务livenessProbe端点以确保服务正在运行jobs.<job_id>.steps- 我在按名称连接到服务时遇到了一些问题,因此我将端点设置
minio为,GitHub Actions 在Kuberneteslocahost:9000中运行,它们共享相同的网络命名空间,并且可以通过Podlocalhost- 访问和中的加密秘密
jobs.<job_id>.services.<service_id>.envjobs.<job_id>.steps.<step_id>.runminio使用github上下文挂载本地目录作为支持服务的卷workspace
该错误是抱怨--entrypoint "minio server /data",而不是配置volumes。它似乎是在寻找一个名为的文件,minio server /data而不是在 shell 中执行命令。这是标志如何工作的一个很好的解释--entrypoint,原因是因为--entrypoint需要一个文件(二进制文件或脚本)来执行,而不是带有参数的命令来运行。正如这里所看到的,这似乎很难克服。
我想到的唯一建议是使用minio/minio中设置的参数在 Docker 映像之上构建Dockerfile并将其上传到 DockerHub,以便您可以使用它作为image替代。
以下是您可以使用的示例Dockerfile:
FROM minio/minio
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh", "minio", "server", "/data"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4426 次 |
| 最近记录: |