verdaccio + Docker + GCE로 개인 npm 레지스트리 설정

개요



사내 일부 앱에 공통으로 통합하기 위해 npm 라이브러리를 만들었지만,
npm에 publish하여 전세계에 공개할 수도 없기 때문에 verdaccio를 사용하여 사내에 공개 가능한 npm 레지스트리를 작성한다.

verdaccio



로컬에 npm 레지스트리를 구축하는 도구.
docker-examplesdocker run 그냥 구축 가능한 샘플이 풍부하기 때문에,
이번은 이 중에서 Docker + Apache + Verdaccio 를 선택해 GCE상에 구축해 간다

구축 절차



1. GCE 인스턴스 시작



무료 테두리 안에 들어가고 싶기 때문에, 우선 1번 작은 인스턴스
배포판은 우분투를 선택했습니다.
  • MachineType: f1-micro
  • Image: Ubuntu 18.04 LTS
  • Allow HTTP traffic
  • gcloud beta compute --project=<your_project_id> instances create verdaccio \
    --zone=asia-northeast1-b --machine-type=f1-micro --tags=http-server,https-server \
    --image=ubuntu-1804-bionic-v20191113 --image-project=ubuntu-os-cloud \
    --boot-disk-size=10GB --boot-disk-type=pd-standard --boot-disk-device-name=verdaccio
    

    GCE가 시작되면 SSH에 연결하고 이후 작업은 인스턴스 내에서 수행됩니다.

    2. docker + docker-compose 설치


  • 참고: Ubuntu 18.04에 Docker 설치 (+docker-compose도)

  • 3. verdaccio 샘플을 clone하고 docker-compose


    $> git clone https://github.com/verdaccio/docker-examples.git
    $> cd docker-examples/apache-verdaccio/
    $> sudo docker-compose up -d
    .
    .
    .
    Creating verdaccio ... done
    Creating apache-verdaccio_apacheproxy_1 ... done
    

    4. 시작에 성공하면 브라우저에서 액세스해 봅니다.


  • GCE 인스턴스에 할당된 외부 IP를 클릭하여 브라우저에서 액세스


  • https로 액세스 할 수 없으므로 http에 수정하여 액세스
  • 이런 느낌의 화면이 표시되면 성공



  • 운영 절차


  • 여기에서 로컬 PC로 돌아가서 작업합니다

  • 1. npm 라이브러리를 publish 해보세요.


  • 라이브러리의 dist 폴더에서 다음을 실행하여 게시
  • $> npm set registry http://<external_ip>
    $> npm publish --registry http://<external_ip>
    

    2. 레지스트리를 확인해 봅니다.


  • verdaccio에 다시 액세스하십시오
  • 게시 된 라이브러리가 표시되면 성공





  • 3. 라이브러리를 설치해 봅니다.


    $> npm install --save my-library --registry http://<external_ip>
    
  • 라이브러리가 올바르게 설치되면 성공
  • 다른 공개된 라이브러리와 같이 취급할 수 있다
  • 좋은 웹페이지 즐겨찾기