I am using docker-compose to start a minio service and minio/mc container to create a default bucket. I cannot seem to be able to get the createbuckets service to return an exit code of any value other than 0 when a command in the entrypoint command string fails…anyone spot why this error is occurring?
For info…the entrypoint checks the success of the command to add minio as a host to the mc command client config. I have specified a restart policy of on on-failure so that I can signal a failure exit code of 1 if this fails, thus restarting the createbuckets service until it can connect to the minio service.
I am running docker-compose in MacOS. I have tried the script in a Linux OS environment and it works if I issue the command
docker-compose -f myfile.yaml up minio createbuckets. In this case an exit with status 1 occurs in the event that createbuckets service fails to connect to the minio service. If I issue
docker-compose -f myfile.yaml up in a Linux OS environment then the createbuckets service exits with status code 0 and no retry occurs. Why?
version: "3" services: minio: image: minio/minio ports: - "9000:9000" volumes: - ./docker/minio-data:/export - ./docker/minio-config:/root/.minio environment: - "MINIO_ACCESS_KEY=accesskey" - "MINIO_SECRET_KEY=secretkey" command: server /export healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000"] interval: 30s timeout: 10s retries: 5 createbuckets: image: minio/mc depends_on: - minio restart: on-failure entrypoint: > /bin/sh -c " mc config host add myminio http://minio:9000 accesskey secretkey; success=$$?; if [ $$success -ne 0 ]; then \ echo error encountered; else \ /usr/bin/mc rm -r --force myminio/uploads; /usr/bin/mc mb myminio/uploads; /usr/bin/mc policy download myminio/uploads; \ fi echo the variable value is $$success; if [ $$success -ne 0 ]; then exit 1; else exit 0; fi "