forked from minio/minio
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Dockerfile based on Red Hat UBI (minio#10958)
See https://connect.redhat.com/zones/containers/container-certification-policy-guide for details Co-authored-by: Harshavardhana <[email protected]>
- Loading branch information
1 parent
aabf053
commit ab49471
Showing
2 changed files
with
133 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3 | ||
|
||
ARG TARGETARCH | ||
|
||
LABEL name="MinIO" \ | ||
vendor="MinIO Inc <[email protected]>" \ | ||
maintainer="MinIO Inc <[email protected]>" \ | ||
version="RELEASE.2020-11-25T22-36-25Z" \ | ||
release="RELEASE.2020-11-25T22-36-25Z" \ | ||
summary="MinIO is a High Performance Object Storage, API compatible with Amazon S3 cloud storage service." \ | ||
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." | ||
|
||
ENV MINIO_ACCESS_KEY_FILE=access_key \ | ||
MINIO_SECRET_KEY_FILE=secret_key \ | ||
MINIO_KMS_MASTER_KEY_FILE=kms_master_key \ | ||
MINIO_SSE_MASTER_KEY_FILE=sse_master_key \ | ||
MINIO_UPDATE_MINISIGN_PUBKEY="RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav" | ||
|
||
COPY dockerscripts/verify-minio.sh /usr/bin/verify-minio.sh | ||
COPY dockerscripts/docker-entrypoint.ubi.sh /usr/bin/docker-entrypoint.ubi.sh | ||
COPY CREDITS /licenses/CREDITS | ||
COPY LICENSE /licenses/LICENSE | ||
|
||
RUN \ | ||
microdnf update --nodocs && \ | ||
microdnf install curl ca-certificates shadow-utils --nodocs && \ | ||
curl -s -q https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -o epel-release.rpm && \ | ||
rpm -ivh epel-release.rpm && microdnf install minisign --nodocs && \ | ||
curl -s -q https://dl.min.io/server/minio/release/linux-${TARGETARCH}/minio -o /usr/bin/minio && \ | ||
curl -s -q https://dl.min.io/server/minio/release/linux-${TARGETARCH}/minio.sha256sum -o /usr/bin/minio.sha256sum && \ | ||
curl -s -q https://dl.min.io/server/minio/release/linux-${TARGETARCH}/minio.minisig -o /usr/bin/minio.minisig && \ | ||
microdnf clean all && \ | ||
chmod +x /usr/bin/minio && \ | ||
chmod +x /usr/bin/docker-entrypoint.ubi.sh && \ | ||
chmod +x /usr/bin/verify-minio.sh && \ | ||
/usr/bin/verify-minio.sh && \ | ||
groupadd --gid 1000 minio && \ | ||
useradd -M --uid 1000 --gid 1000 --home /usr/share/minio minio && \ | ||
mkdir -p /data && chown -R minio:minio /usr/bin /data | ||
|
||
EXPOSE 9000 | ||
|
||
USER minio | ||
|
||
ENTRYPOINT ["/usr/bin/docker-entrypoint.ubi.sh"] | ||
|
||
VOLUME ["/data"] | ||
|
||
CMD ["minio"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
#!/bin/sh | ||
# | ||
# MinIO Cloud Storage, (C) 2020 MinIO, Inc. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
# | ||
|
||
# If command starts with an option, prepend minio in UBI container image | ||
if [ "${1}" != "minio" ]; then | ||
if [ -n "${1}" ]; then | ||
set -- minio "$@" | ||
fi | ||
fi | ||
|
||
## Look for docker secrets at given absolute path or in default documented location. | ||
docker_secrets_env() { | ||
if [ -f "$MINIO_ACCESS_KEY_FILE" ]; then | ||
ACCESS_KEY_FILE="$MINIO_ACCESS_KEY_FILE" | ||
else | ||
ACCESS_KEY_FILE="/run/secrets/$MINIO_ACCESS_KEY_FILE" | ||
fi | ||
if [ -f "$MINIO_SECRET_KEY_FILE" ]; then | ||
SECRET_KEY_FILE="$MINIO_SECRET_KEY_FILE" | ||
else | ||
SECRET_KEY_FILE="/run/secrets/$MINIO_SECRET_KEY_FILE" | ||
fi | ||
|
||
if [ -f "$ACCESS_KEY_FILE" ] && [ -f "$SECRET_KEY_FILE" ]; then | ||
if [ -f "$ACCESS_KEY_FILE" ]; then | ||
MINIO_ACCESS_KEY="$(cat "$ACCESS_KEY_FILE")" | ||
export MINIO_ACCESS_KEY | ||
fi | ||
if [ -f "$SECRET_KEY_FILE" ]; then | ||
MINIO_SECRET_KEY="$(cat "$SECRET_KEY_FILE")" | ||
export MINIO_SECRET_KEY | ||
fi | ||
fi | ||
} | ||
|
||
## Set KMS_MASTER_KEY from docker secrets if provided | ||
docker_kms_encryption_env() { | ||
if [ -f "$MINIO_KMS_MASTER_KEY_FILE" ]; then | ||
KMS_MASTER_KEY_FILE="$MINIO_KMS_MASTER_KEY_FILE" | ||
else | ||
KMS_MASTER_KEY_FILE="/run/secrets/$MINIO_KMS_MASTER_KEY_FILE" | ||
fi | ||
|
||
if [ -f "$KMS_MASTER_KEY_FILE" ]; then | ||
MINIO_KMS_MASTER_KEY="$(cat "$KMS_MASTER_KEY_FILE")" | ||
export MINIO_KMS_MASTER_KEY | ||
fi | ||
} | ||
|
||
## Legacy | ||
## Set SSE_MASTER_KEY from docker secrets if provided | ||
docker_sse_encryption_env() { | ||
SSE_MASTER_KEY_FILE="/run/secrets/$MINIO_SSE_MASTER_KEY_FILE" | ||
|
||
if [ -f "$SSE_MASTER_KEY_FILE" ]; then | ||
MINIO_SSE_MASTER_KEY="$(cat "$SSE_MASTER_KEY_FILE")" | ||
export MINIO_SSE_MASTER_KEY | ||
fi | ||
} | ||
|
||
## Set access env from secrets if necessary. | ||
docker_secrets_env | ||
|
||
## Set kms encryption from secrets if necessary. | ||
docker_kms_encryption_env | ||
|
||
## Set sse encryption from secrets if necessary. Legacy | ||
docker_sse_encryption_env | ||
|
||
exec "$@" |