我正在尝试创建一个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:
...
我尝试了以下排列以使minio容器正常工作,但没有成功:volumes:
- ./data:/data
volumes:
- ./:/data
volumes:
- .:/data
volumes:
- /data:/data
我什至尝试:options: --entrypoint "mkdir /data; minio server /data" ...
options: --entrypoint "minio server /tmp" ...
options: --entrypoint ["minio server", "/tmp"] ...
我尝试使用-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" ...
为了使其正常工作。但不幸的是,我得到了:starting container process caused: exec: "minio server /data": stat minio server /data: no such file or directory: unknown
而且我不能在没有任何参数的情况下运行minio server
:( 最佳答案
该错误抱怨的是--entrypoint "minio server /data"
,而不是volumes
配置。它似乎正在寻找一个名为minio server /data
的文件,而不是在shell中执行命令。这是--entrypoint
标志的工作原理的good explanation,其原因是因为--entrypoint
需要一个文件(二进制文件或脚本)来执行,而不是带有参数的命令才能运行。从here看来,这似乎很难克服。
我唯一想到的建议是在minio/minio
Docker镜像的顶部构建,并在Dockerfile
中设置参数,然后将其上传到DockerHub,以便可以将其用作image
。
以下是您可以使用的示例Dockerfile
:
FROM minio/minio
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh", "minio", "server", "/data"]
关于docker - 在github Action yml文件中创建一个Minio(S3)容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64031598/