Sign inSign up

netvark/mc

By netvark

•Updated about 2 months ago

Image
0

1.5K

netvark/mc repository overview

⁠mc (MinIO Client) - Self-Built Docker Image

Build Status

Community-maintained Docker image for mc⁠, the MinIO client, built from source.

⁠Why This Image?

MinIO deleted the minio/mc repository from Docker Hub entirely — not just its tags, the whole repository. Pull-by-digest fails too, so existing digest pins are unrecoverable from Docker Hub. dl.min.io returns 410 Gone for binaries, and github.com/minio/mc is archived upstream.

This image is compiled from a full mirror of that source at netvark/mc⁠.

⁠Quick Start

mc is a one-shot CLI, not a daemon — no ports, no volumes required.

docker run --rm netvark/mc --version

docker run --rm netvark/mc alias set myminio \
  http://minio:9000 admin secretpassword

Because each docker run is a fresh container, aliases do not persist between runs. Either do it in one invocation:

docker run --rm netvark/mc sh -c \
  'mc alias set my http://minio:9000 admin pass && mc ls my'

...or mount a config directory (see below).

⁠Configuration

VariableDescriptionDefault
MC_CONFIG_DIRWhere aliases are stored/tmp/.mc

The default is /tmp/.mc so the image works read-only and as a non-root user. To persist aliases:

docker run --rm -v mc_config:/tmp/.mc netvark/mc alias list

⁠Use With docker-compose

Typical use is a one-shot init container that provisions buckets:

services:
  minio:
    image: netvark/minio:latest
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: your-secure-password-here
    volumes:
      - minio_data:/data

  createbuckets:
    image: netvark/mc:latest
    depends_on:
      - minio
    entrypoint: >
      /bin/sh -c "
      until mc alias set my http://minio:9000 admin your-secure-password-here; do
        echo 'waiting for minio...'; sleep 2;
      done;
      mc mb --ignore-existing my/uploads;
      mc anonymous set download my/uploads;
      "

volumes:
  minio_data:

Note the entrypoint override — the image's entrypoint is mc itself, so a shell is needed for multi-step provisioning.

⁠Tags

TagDescription
latestMost recent build
YYYYMMDDBuild from a specific date
<commit-sha>Build from a specific mc commit

⁠Supported Architectures

  • linux/amd64
  • linux/arm64

Upstream also shipped ppc64le; this image does not. Pull the mirror below if you need it.

⁠Not a Drop-In Digest Replacement

This image is compiled by us and therefore has a different digest from the minio/mc image you may have pinned previously. If you need the original bytes — same digest, bit-identical to what MinIO shipped — use the mirror instead:

docker pull ghcr.io/netvark/mc@sha256:a7fe349ef4bd8521fb8497f55c6042871b2ae640607cf99d9bede5e9bdf11727

Those are copies of MinIO's own images, preserved with their digests intact.

⁠Runtime Details

  • Runs as non-root (uid=100 mc)
  • Binary at /opt/bin/mc, also on PATH
  • Alpine base with ca-certificates for TLS

⁠Build Information

Built on demand via manual workflow trigger, from netvark/mc⁠.

Upstream minio/mc is archived and frozen at commit 77f82e18 (2025-11-06), so there is no scheduled build — there is nothing new to pick up. The workflow accepts an mc_ref input to build any branch, tag, or commit.

⁠Security

⚠️ Always verify the source of your Docker images. This one is built in public via GitHub Actions with full logs: build-mc.yml⁠

⁠Source Code

⁠License

mc is licensed under GNU AGPLv3⁠.

Tag summary

Content type

Image

Digest

sha256:e3f00efe7…

Size

14.3 MB

Last updated

about 2 months ago

docker pull netvark/mc