앞서 구성한 docker compose에 MinIO를 추가 하겠습니다.
├─ nginx
│ ├─ config
│ │ └─ nexus.conf
│ └─ nginx.conf
└─ docker-compose.yml # this!
MinIO의 Docker image는 아래 링크에서 확인할 수 있습니다.
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
생성된 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에서 설정한 계정 정보로 접속 하면 됩니다.
CI중 생성되는 데이터의 캐시가 보관될 bucket을 생성합니다.
Buckes > Create Bucket
bucket에 접근할 수 있는 user와 service account를 생성합니다. gitlab-ci에서 cache서버에 접근할 때 활용합니다.
Identity > Users > Create user
생성한 유저의 Service account도 생성합니다.
Identity > Users > change_me 클릭 > ServiceAccounts > Create service account > save
생성된 파일을 다운로드 받아 보관해 주세요.
작성된 코드는 아래 Repository에 올려두었습니다.
다음은 gitlab을 구성하겠습니다.
- Self managed repository and CI #1 - Overview
- Self managed repository and CI #2 - Docker network, Nginx reverse proxy
- Self managed repository and CI #3 - Nexus3
- Self managed repository and CI #4 - Minioㆍ현재 글
- Self managed repository and CI #5 - Gitlab
- Self managed repository and CI #6 - Gitlab-runner
- Self managed repository and CI #7 - Gitlab-CI