LoginSignup
0
2

More than 3 years have passed since last update.

verdaccio + Docker + GCE でprivateなnpmレジストリを立てる

Last updated at Posted at 2019-11-29

概要

社内のいくつかのアプリに共通で組み込むため、npmライブラリを作ったものの、
npmにpublishして全世界に公開する訳にもいかないので、verdaccioを使って社内に公開可能なnpmレジストリを作成する

verdaccio

ローカルにnpmのレジストリを構築するためのツール。
docker-examplesdocker run するだけで構築可能なサンプルが豊富にあるため、
今回はこの中から Docker + Apache + Verdaccio を選択してGCE上に構築していく

構築手順

1. GCEインスタンスの起動

無料枠内で収めたいので、とりあえず1番小さいインスタンス
ディストリビューションはUbuntuを選択した

  • 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 をインストールする

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インスタンスに割り当てられたExternal IPをクリックしてブラウザでアクセス image.png

httpsだとアクセスできないので、httpに修正してアクセスする

  • こんな感じの画面が表示されたら成功

image.png

運用手順

  • ここからはローカルPCに戻って作業する

1. npmライブラリをpublishしてみる

  • ライブラリのdistフォルダ内で以下を実行してpublishする
$> npm set registry http://<external_ip>
$> npm publish --registry http://<external_ip>

2. レジストリを確認してみる

  • verdaccioに再度アクセスしてみる

  • publishしたライブラリが表示されていれば成功

image.png

image.png

3. ライブラリをインストールしてみる

$> npm install --save my-library --registry http://<external_ip>
  • 正しくライブラリがインストールされたら成功
  • 他の一般公開されているライブラリと同じように扱うことができる
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2