Self managed repository and CI #4 - MinIO

Jinwon Seo·2022년 11월 30일
0
post-thumbnail

앞서 구성한 docker compose에 MinIO를 추가 하겠습니다.

├─ nginx
│   ├─ config
│   │   └─ nexus.conf
│   └─ nginx.conf
└─ docker-compose.yml # this!

MinIO

MinIO의 Docker image는 아래 링크에서 확인할 수 있습니다.

Docker hub - minio/minio

MinIO 구성

docker compose에 minio가 사용할 volume을 추가합니다.

# ./docker-compose.yml

volumes:
  (...중략...)
  minio-data:
    name: minio-data

docker compose에 minio 구성을 추가합니다.

# ./docker-compose.yml

services:
  (...중략...)
  minio:
    image: minio/minio:latest
    container_name: minio
    hostname: minio
    restart: always
    volumes:
      - type: volume
        source: minio-data
        target: /data
    environment:
      MINIO_ROOT_USER: <change_me>
      MINIO_ROOT_PASSWORD: <change_me>
    command: server /data --console-address ":9001"
    shm_size: '1gb'
    networks: 
      docker-host:
        ipv4_address: 172.20.0.30

docker-compose.yml이 존재하는 위치에서 아래 명령을 실행합니다.

$ docker-compsoe up -d minio

실행이 완료되면 아래와 같이 continer log를 확인 할 수 있습니다.
9000번 포트는 api 포트, 9001번 포트는 console포트입니다.

$ docker logs -f minio

MinIO Object Storage Server
Copyright: 2015-2022 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2022-10-29T06-21-33Z (go1.19.2 linux/amd64)

Status:         1 Online, 0 Offline. 
API: http://172.20.0.22:9000  http://127.0.0.1:9000 
Console: http://172.20.0.22:9001 http://127.0.0.1:9001 

Documentation: https://min.io/docs/minio/linux/index.html

Nginx reverse proxy 설정

생성된 nexus에 접속할 수 있도록 nginx의 reverse proxy 설정 파일을 추가합니다.

├─ nginx
│   ├─ config
│   │   ├─ minio.conf # this!
│   │   └─ nexus.conf
│   └─ nginx.conf
└─ docker-compose.yml
#./nginx/config/minio.conf

upstream minio.domain.com {
        server minio:9000;
}
server {
	server_name minio.domain.com;
	listen 80;
	location / {
		proxy_pass http://minio.domain.com;
	}
}

upstream console.minio.domain.com {
        server minio:9001;
}
server {
	server_name console.minio.domain.com;
	listen 80;
	location / {
		proxy_pass http://console.minio.domain.com;
	}
}

nginx 컨테이너에서 nginx를 reload 하거나 nginx container 를 재시작 해줍니다.

$ docker restart nginx-proxy

웹 브라우저를 통해 http://console.minio.domain.com 으로 접속 하면 아래와 같은 페이지가 연결됩니다.
docker-compose에서 설정한 계정 정보로 접속 하면 됩니다.

Bucket 생성

CI중 생성되는 데이터의 캐시가 보관될 bucket을 생성합니다.

Buckes > Create Bucket

  • Name: private-gitlab-ci

bucket에 접근할 수 있는 user와 service account를 생성합니다. gitlab-ci에서 cache서버에 접근할 때 활용합니다.

Identity > Users > Create user

  • UserName: change_me
  • Password: change_me
  • Policy: readwrite

생성한 유저의 Service account도 생성합니다.

Identity > Users > change_me 클릭 > ServiceAccounts > Create service account > save

생성된 파일을 다운로드 받아 보관해 주세요.

예제코드

작성된 코드는 아래 Repository에 올려두었습니다.

Github - self-managed-repository-and-ci

Next

다음은 gitlab을 구성하겠습니다.

  1. Self managed repository and CI #1 - Overview
  2. Self managed repository and CI #2 - Docker network, Nginx reverse proxy
  3. Self managed repository and CI #3 - Nexus3
  4. Self managed repository and CI #4 - Minioㆍ현재 글
  5. Self managed repository and CI #5 - Gitlab
  6. Self managed repository and CI #6 - Gitlab-runner
  7. Self managed repository and CI #7 - Gitlab-CI

0개의 댓글