landscapeの構築について
landscape :https://github.com/cncf/landscape というOSSを一覧で管理するソフトウェアをローカル環境に構築を行う際の出来事について記載する。
構築を社内のLinuxサーバでyarn コマンドでプロキシ を突破できない課題があった。
そのため、以下の2つの方針で行動を行った
- 各個人が所有しているプライベートPCを用いてdocker で環境を構築
- 社内Linuxサーバでyarnコマンドでプロキシを突破できるよに模索
私が所有しているPCはMacだっため、Mac上にdockerをインストールして、landscape の構築を行った。
その際、社内LinuxサーバとMacの環境を同じにしているにも関わらず、社内Linuxサーバで突破しているyarn によるサーバ起動コマンドでエラーを出力し、回避を行うことができなかった。
root@c6f9ee4050c2:~/graphql-landscape# yo ※サーバ起動コマンド
Internal Error: Assertion failed: Expected workspace to have been resolved
at se.refreshWorkspaceDependencies (/root/landscapeapp/.yarn/releases/yarn-berry.js:31:175850)
at se.restoreInstallState (/root/landscapeapp/.yarn/releases/yarn-berry.js:31:200252)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async tt.execute (/root/landscapeapp/.yarn/releases/yarn-berry.js:71:88275)
at async tt.validateAndExecute (/root/landscapeapp/.yarn/releases/yarn-berry.js:25:318779)
at async e.run (/root/landscapeapp/.yarn/releases/yarn-berry.js:31:458286)
at async e.runExit (/root/landscapeapp/.yarn/releases/yarn-berry.js:31:458420)
構成は以下である
社内Linuxサーバ | Mac |
---|---|
landscape | landscape |
Ubuntu | Ubuntu |
docker | docker |
Ubuntu(Host OS) | Mac(Host OS) |
docker のコンテナはホストOSに依存しない仮想化技術であるる認識であった。しかし、dockerのコンテナはホストOSとカーネルを共有するため、ホストOSに依存したソフトウェアである。そのため、前述のエラーが発生したと思われる。
ホストOSに依存しない仮想化技術を用いるなら、VMによる構築を行うべきであった(VM ware/VirtualBox 等)。
しかし、VMの場合でもアーキテクチャには依存する(CPU(Intel, AMD, 32bit/64bit), ハードウェアの構成)可能性があることから、留意すべきである。