はじめに
前回書いた記事もverdaccioだったのですが分量がすさまじくなってしまい大変にわかりづらかったので
手順多めで今回はUnityで認証まで通したverdaccioの構築を新ためて書きます。
前編ではverdaccioにwebでアクセスできるまで、後編ではそこから追加で認証の設定をしていきます。
なので、全体に公開する前提のパッケージ群であれば前編のみで完結します。
後編 https://qiita.com/Yothuba3/items/6fa38d98e5b93ab19a75
docker-composeのインストールを済ませてから以下の手順を進めてください。
構築環境
- Ubuntu 22.04.1 LTS(ConohaVPS)
- Docker compose
説明しないもの
- サーバ環境の準備
- 各種使用ソフトウェアの解説
手順
docker-compose.yamlの作成
適当な場所にまずはルートフォルダを作成しましょう。
今回はqiitaフォルダとし、/home/user以下に作成しています。
mkdir qiita && cd qiita
qiitaフォルダ以下でdocker-compose.yaml
を作成し、以下の内容を記述します。
services:
https-portal:
image: steveltn/https-portal
container_name: "proxy-sample"
ports:
- 80:80
- 443:443
restart: always
environment:
CLIENT_MAX_BODY_SIZE: 100G
DOMAINS: 'your.domain.com -> http://verdaccio-sample:4873'
STAGE: production
volumes:
- ./http-portal-certs:/var/lib/https-portal
verdaccio:
image: verdaccio/verdaccio
container_name: "verdaccio-sample"
restart: always
environment:
- VERDACCIO_PORT=4873
ports:
- 4873:4873
volumes:
- "./verdaccio/storage:/verdaccio/storage"
- "./verdaccio/config:/verdaccio/conf"
- "./verdaccio/plugins:/verdaccio/plugins"
docker-compose.yamlの中身
- https-portal
- verdaccio
の2つのコンテナを起動しています。
https-portal
リバースプロキシサーバの役割、およびSSLの証明書発行をやってくれる優れものです。
environment
ブロックのDOMAINS
で、your-domain -> コンテナ側のURL
と指定することでリバースプロキシが設定され、ドメインに対して自動でSSLも取得されます。
SSLの設定は本当に面倒くさいので筆者的にはまじで重宝しています。
verdaccio
verdaccioはUPMサーバの本体となります。Unity、自作UPMサーバと検索すると大体ヒットするのはこの
verdaccioだと思います。UPMサーバ、WebGUIを提供してくれるのでエンジニア以外も触りやすいです。
起動
一度docker-composeを起動し、構成ファイルを生成させます。
yamlファイルのあるディレクトリで以下を実行します。
docker compose up --build -d
生成に成功したらそのままダウンさせます。
docker compose down
以上の操作によって、verdaccioフォルダが作成され、配下にstorage, config, pugins
の3つが生成されます。このうちのconfigフォルダにverdaccio公式からconfigファイルのひな形をコピーします。
verdaccioはdocker利用時にconfigファイルのみは別途用意する必要があり、マニュアルにも記載されています。
必ずconfigファイルの名前をconfig.yamlとすること。verdaccioはデフォルトでconfig.yaml
の名前で探しに行きます。
vim config.yaml
以下の内容をconfig.yamlに記述します。
ひな形からコメントを削除したもので、追記したのは下から2,3行目のmax_body_size
, listen
ブロックです。
storage: /verdaccio/storage/data
plugins: /verdaccio/plugins
web:
title: Verdaccio
auth:
htpasswd:
file: /verdaccio/storage/htpasswd
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
server:
keepAliveTimeout: 60
middlewares:
audit:
enabled: true
max_body_size: 10000mb
listen: http://proxy-sample:4873
logs: { type: stdout, format: pretty, level: http }
改めてcompose起動
ここまでの設定が終われば9割型終了しています。
以下のコマンドを実行しwebからアクセスできることを確認していきましょう。
docker compose up --build -d
起動を確認したら、ブラウザから自身が指定ドメインでアクセスしてみます。
無事アクセスできました!!
ここまでくればあとはverdaccioに関するほかの記事でpackageのプッシュ、unityでのプルはできると思います
もしも途中で詰まったら
人によっては502エラーなどで詰まる可能性もあると思います。その場合は焦らずに
docker compose up --build
などを実行して、dockerのログを確認してみるとエラーが確認できたりします。
記事中に使っていたのは-d
オプションを付与したものでバックグラウンドで実行するためのものです。
firewallを確認する
記事では省きましたが、使用するosによっては80/443がブロックされている場合もあるので要チェックです。
使用するサーバ
筆者はconohaVPSを利用しています。awsなども勿論良いのですが初心者には設定項目が多いので、どうしても上手くいかない場合はVPSを変えることも検討しましょう。
後編へ続く