概要
- DockerにてMinioのコンテナを立てる方法を簡単にまとめる。
前提
- 筆者の環境はすでにMinio以外の開発用コンテナを立てたことがあり、途中からMinioのコンテナを追加を行う。
- docker-composer.ymlなどは
方法
- Dockerhubにログインする。
- 下記にアクセスする。
-
latest以外のタグを確認する。ブラウザのウインドウを開いたままにしてあとからタグ名をコピーできるようにしておく。
-
下記のコマンドを実行してディレクトリを作成する。(この辺は筆者の環境に依存しているため、適宜ご自身の環境に合わせていただきたい。)
mkdir .docker/minio
-
下記コマンドを実行して作成したディレクトリにDockerfileを作成して開く。
vi .docker/minio/Dockerfile
-
開いたDockerfileを下記のように記載する。(FROMのあとはDockerhubのminioのタグ名を指定する。)curlのコマンドは参考文献先のMinioのドキュメントを参考にした。
.docker/minio/DockerfileFROM minio/minio:RELEASE.2023-08-29T23-07-35Z.fips
-
docker-compose.ymlと同じ階層に.envファイルを定義し下記の様に記載する。
.env# minio MINIO_API_HOST_PORT=9000 MINIO_API_CONTAINER_PORT=9000 MINIO_CONSOLE_HOST_PORT=9001 MINIO_CONSOLE_CONTAINER_PORT=9001 MINIO_ROOT_USER=root_user MINIO_ROOT_PASSWORD=root_user_password MINIO_BUCKET_NAME=任意のバケット名 MINIO_SERVER_ADDRESS=http://localhost:9000
-
docker-composer.ymlのserviceに下記の内容を追記する。
docker-compose.ymlminio: build: ./.docker/minio volumes: - "./minio/data:/data:delegated" ports: - ${MINIO_API_HOST_PORT}:${MINIO_API_CONTAINER_PORT} - ${MINIO_CONSOLE_HOST_PORT}:${MINIO_CONSOLE_CONTAINER_PORT} environment: - MINIO_ROOT_USER=${MINIO_ROOT_USER} - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} - MINIO_SERVER_ADDRESS=${MINIO_SERVER_ADDRESS} - MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME} command: server /data --console-address :${MINIO_CONSOLE_HOST_PORT} createbuckets: image: minio/mc depends_on: - minio environment: - MINIO_API_CONTAINER_PORT=${MINIO_API_CONTAINER_PORT} - MINIO_ROOT_USER=${MINIO_ROOT_USER} - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} - MINIO_SERVER_ADDRESS=${MINIO_SERVER_ADDRESS} - MINIO_BUCKET_NAME=${MINIO_BUCKET_NAME} entrypoint: > /bin/sh -c " until (/usr/bin/mc config host add myminio http://minio:$$MINIO_API_CONTAINER_PORT $$MINIO_ROOT_USER $$MINIO_ROOT_PASSWORD) do echo '...waiting...' && sleep 1; done; /usr/bin/mc mb myminio/$$MINIO_BUCKET_NAME; /usr/bin/mc policy download myminio/$$MINIO_BUCKET_NAME; exit 0; "
-
ここまで記載できたら下記コマンドを実行する。
docker-compose build docker-compose up -d
-
http://localhost:9001/loginにアクセスし、Username →
root_user
、Password →root_user_password
とすることでログインできる。 -
ログイン後、手動でバケットを作らずとも.envのMINIO_BUCKET_NAMEの値のバケットが作られていれば完了となる。
参考文献