もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

docker-composeでminioが起動したときにバケットを作る

はじめに

こんばんは。

minio使用する際にバケットがないと言われてイラッとしたので、調べてみました。

本題

方法1

  minio:
    image: minio/minio:latest
    ports:
      - '${FORWARD_MINIO_PORT:-9001}:9001'
      - '${FORWARD_MINIO_CONSOLE_PORT:-8900}:8900'
    environment:
      MINIO_ROOT_USER: root
      MINIO_ROOT_PASSWORD: password

    entrypoint: >
      /bin/sh -c "
      mkdir -p /data/minio/bucket1;
      mkdir -p /data/minio/bucket2;
      mkdir -p /data/minio/bucket3;
      /usr/bin/minio server /data/minio --console-address ':8900';
      exit 0;
      "
    deploy:
      restart_policy:
        condition: on-failure

上記のような感じでコマンドを実行してあげればデフォルトのバケットが作成されています。

方法2

  minio:
    image: minio/minio:latest
    ports:
      - 19000:9000
    volumes:
      - ./data/.minio/data:/export
      - ./test/.minio/config:/root/.minio
    data:
      MINIO_ROOT_USER: root
      MINIO_ROOT_PASSWORD: password
    command: server /export
  createbuckets:
    image: minio/mc
    depends_on:
      - minio
    entrypoint: >
      /bin/sh -c "
      /usr/bin/mc config host add myminio http://minio:9000 root password
      /usr/bin/mc rm -r --force myminio/bucket1;
      /usr/bin/mc mb myminio/bucket1;
      /usr/bin/mc policy download myminio/bucket1;
      exit 0;
      "

という感じで、 minio/mc コンテナを別で起動してそちらから minioコンテナへ向けてコマンドを打つことで作ることができます。

終わりに

ざっくりしたがこの2パターンがあるみたいです。

ちなみにボクは方法1でやってます。 今のところ問題は出てないです。

現場からは以上です。