前提
- Windows環境
Which interface should the network bridge to?
- コマンドラインをEnter押してもうんともすんともしない
なんだこれ
config.vm.network "public_network", ip: "192.168.0.1", hostname: true
config.vm.network "forwarded_port", guest: 80, host: 8080, protocol: "tcp", auto_correct: true
たぶん、この辺の設定を行うと出るっぽい
結論
- 「1」を入力すると進んだ。
please check the process listing for any "ruby" or "vagrant" processes and kill them. Then try again.
- プロビジョニング中に強制終了したら、rubyなんちゃらと警告が出た。
結論
# ルビーに関係するプロセス検索
tasklist | grep ruby*
# 該当プロセスをKILL
wmic process where "name='プロセス名'" delete
VagrantのPort開放関係(localhost:????)の部分ってどうやって指定するんだ
結論
- アプリケーション側のportを:7000に指定する
- golangなら
http.ListenAndServe(":7000", nil)
- golangなら
- Vagrantfileの設定
config.vm.network "forwarded_port", guest: 7000, host: 7001
Goの拡張機能がSSH接続でVsCode環境で使用できない
症状
- 放置しても、画像の状態でフリーズ
- 補完が効かない
結論
- まず、Goの開発環境サポート用のツールをインストールする必要がある
- Vagrantfileにて、以下の通りにSSH接続後(VsCode)、Vagrant環境内で実行する①
- VsCodeを開き、Go拡張機能をインストールする
①↓↓↓↓↓↓↓↓↓
# Go1.20のインストール
GOFILE=go1.20.4.linux-amd64.tar.gz
wget https://go.dev/dl/$GOFILE
sudo tar -C /usr/local -xzf $GOFILE
rm -rf $GOFILE
# Goのパスを通す
echo "export PATH=$PATH:/usr/local/go/bin" >> /home/vagrant/.bashrc
source /home/vagrant/.bashrc
GO_PLS_VERSION=golang.org/x/tools/gopls@v0.11.0
GO_OUTLINE_VERSION=github.com/ramya-rao-a/go-outline@latest
GO_CODE_VERSION=github.com/stamblerre/gocode@v1.0.0
/usr/local/go/bin/go install -v $GO_PLS_VERSION
/usr/local/go/bin/go install -v $GO_OUTLINE_VERSION
/usr/local/go/bin/go install -v $GO_CODE_VERSION
fatal error: out of memory allocating heap arena map
症状
- go run main.goで実行したときにエラーが出る
結論
- Vagrant環境内で割り当てているメモリが影響しているっぽい(確証は無い)
- Goの拡張機能が割と重めの印象なのでDisableにしてみてVsCodeリロードで解決
-
free -h
コマンドでメモリ使用量を確認し、メモリ不足ならVagrantのメモリ設定を多めに確保するか、拡張機能落とすとか整理する -
sudo sync && sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'
でキャッシュ削除出来る(応急)
これから
- とりあえず詰まったらここに書き足していく