github.com/minio/minio@v0.0.0-20240328213742-3f72439b8a27/Dockerfile.release (about) 1 FROM golang:1.21-alpine as build 2 3 ARG TARGETARCH 4 ARG RELEASE 5 6 ENV GOPATH /go 7 ENV CGO_ENABLED 0 8 9 # Install curl and minisign 10 RUN apk add -U --no-cache ca-certificates && \ 11 apk add -U --no-cache curl && \ 12 go install aead.dev/minisign/cmd/minisign@v0.2.1 13 14 # Download minio binary and signature file 15 RUN curl -s -q https://dl.min.io/server/minio/release/linux-${TARGETARCH}/archive/minio.${RELEASE} -o /go/bin/minio && \ 16 curl -s -q https://dl.min.io/server/minio/release/linux-${TARGETARCH}/archive/minio.${RELEASE}.minisig -o /go/bin/minio.minisig && \ 17 chmod +x /go/bin/minio 18 19 # Download mc binary and signature file 20 RUN curl -s -q https://dl.min.io/client/mc/release/linux-${TARGETARCH}/mc -o /go/bin/mc && \ 21 curl -s -q https://dl.min.io/client/mc/release/linux-${TARGETARCH}/mc.minisig -o /go/bin/mc.minisig && \ 22 chmod +x /go/bin/mc 23 24 # Verify binary signature using public key "RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGavRUN" 25 RUN minisign -Vqm /go/bin/minio -x /go/bin/minio.minisig -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav && \ 26 minisign -Vqm /go/bin/mc -x /go/bin/mc.minisig -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav 27 28 FROM registry.access.redhat.com/ubi9/ubi-micro:latest 29 30 ARG RELEASE 31 32 LABEL name="MinIO" \ 33 vendor="MinIO Inc <dev@min.io>" \ 34 maintainer="MinIO Inc <dev@min.io>" \ 35 version="${RELEASE}" \ 36 release="${RELEASE}" \ 37 summary="MinIO is a High Performance Object Storage, API compatible with Amazon S3 cloud storage service." \ 38 description="MinIO object storage is fundamentally different. Designed for performance and the S3 API, it is 100% open-source. MinIO is ideal for large, private cloud environments with stringent security requirements and delivers mission-critical availability across a diverse range of workloads." 39 40 ENV MINIO_ACCESS_KEY_FILE=access_key \ 41 MINIO_SECRET_KEY_FILE=secret_key \ 42 MINIO_ROOT_USER_FILE=access_key \ 43 MINIO_ROOT_PASSWORD_FILE=secret_key \ 44 MINIO_KMS_SECRET_KEY_FILE=kms_master_key \ 45 MINIO_UPDATE_MINISIGN_PUBKEY="RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav" \ 46 MINIO_CONFIG_ENV_FILE=config.env \ 47 MC_CONFIG_DIR=/tmp/.mc 48 49 COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ 50 COPY --from=build /go/bin/minio /usr/bin/minio 51 COPY --from=build /go/bin/mc /usr/bin/mc 52 53 COPY CREDITS /licenses/CREDITS 54 COPY LICENSE /licenses/LICENSE 55 COPY dockerscripts/docker-entrypoint.sh /usr/bin/docker-entrypoint.sh 56 57 EXPOSE 9000 58 VOLUME ["/data"] 59 60 ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] 61 CMD ["minio"]