Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions docker/minio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# MinIO

This sample demonstrates how to deploy and use MinIO in your pipeline.

## Using with a Quix Cloud Amazon S3 Connectors

This deployment will work seamlessly with the Quix Cloud Amazon S3 Source/Sink connectors.

Simply set your environment variables for either connector:

```shell
S3_BUCKET="<MINIO BUCKET NAME>"
AWS_ENDPOINT_URL="http://minio:80"
AWS_REGION_NAME="<ANY STR>"
AWS_ACCESS_KEY_ID: "<MINIO ROOT USERNAME>"
AWS_SECRET_ACCESS_KEY: "<MINIO ROOT PASSWORD>"

```

## How to Run

1. Log in or sign up at [Quix](https://portal.platform.quix.io/signup?xlink=github) and navigate to the Code Samples section.
2. Click **Deploy** to launch a pre-built container.
3. Fill in the required environment variables for your MinIO instance.
4. Enable state, otherwise changes will be lost on restart. Please note, the necessary storage type may not be supported on all Quix Platforms.

For more configuration options and details, refer to [MinIO's Docker Hub](https://hub.docker.com/r/minio/minio).


## Contribute

Feel free to fork this project on the [GitHub](https://github.com/quixio/quix-samples) repository and contribute your enhancements. Any accepted contributions will be attributed accordingly.

## License & Support

This project is open source under the Apache 2.0 license and available in our [GitHub](https://github.com/quixio/quix-samples) repo. The image is offered as-is, with no MinIO specific support from Quix.
8 changes: 8 additions & 0 deletions docker/minio/dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM quay.io/minio/minio:latest

EXPOSE 9000 9001

# Define the default command to run when starting the container
COPY init.sh /init.sh
RUN chmod +x /init.sh
ENTRYPOINT ["/init.sh"]
Binary file added docker/minio/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions docker/minio/init.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/sh
set -e

TARGET_DIR="/app/state/minio"
TARGET_USER="root"
TARGET_GROUP="root"

# Check if directory already exists
if [ ! -d "$TARGET_DIR" ]; then
su -s /bin/sh -c "mkdir -p '$TARGET_DIR'" "$TARGET_USER" 2>/dev/null || {
mkdir -p "$TARGET_DIR" || {
echo "❌ Failed to create directory as root"
exit 1
}

chown "$TARGET_USER:$TARGET_GROUP" "$TARGET_DIR" 2>/dev/null || {
echo "❌ Failed to chown directory to $TARGET_USER"
exit 1
}
}
fi

exec /bin/sh -c "minio server $TARGET_DIR --console-address ':9001'"
46 changes: 46 additions & 0 deletions docker/minio/library.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"libraryItemId": "minio",
"name": "MinIO",
"language": "docker",
"tags": {
"Category": ["Database"],
"Type": ["Auxiliary Services"]
},
"shortDescription": "Run a localized S3-compatible datastore in your pipeline.",
"DefaultFile": "dockerfile",
"EntryPoint": "dockerfile",
"IconFile": "icon.png",
"DeploySettings": {
"DeploymentType": "Service",
"CpuMillicores": 200,
"MemoryInMb": 800,
"Replicas": 1,
"Network": {
"ServiceName": "minio",
"Ports":
[
{
"Port": 80,
"TargetPort": 9000
}
]
}
},
"Variables": [
{
"Name": "MINIO_ROOT_USER",
"Type": "EnvironmentVariable",
"InputType": "FreeText",
"Description": "The root username to initialize Minio with",
"DefaultValue": "admin",
"Required": true
},
{
"Name": "MINIO_ROOT_PASSWORD",
"Type": "EnvironmentVariable",
"InputType": "Secret",
"Description": "The root password to initialize Minio with",
"Required": true
}
]
}