プロキシ環境下でのWindows環境構築
Windowsに不慣れなMacユーザーが、いろいろセットアップしてみるメモ。
環境
- OS: Windows 10 (21H1)
- CPU: Intel(R) Core(TM) i5-9400
- プロキシ環境
導入したもの
- WSL2 (カーネル バージョン: 5.10.16)
- Ubuntu (20.04.4 LTS)
- VSCode, Docker Desktop, Zoom
WSL2+Ubuntu
WSL2導入
- スタートメニューの中にある「コマンドプロンプト」を右クリック
- 「管理者として実行」を選択
wsl --install
C:\WINDOWS\system32>wsl --install
インストール中: 仮想マシン プラットフォーム
仮想マシン プラットフォーム はインストールされました。
インストール中: Linux 用 Windows サブシステム
Linux 用 Windows サブシステム はインストールされました。
ダウンロード中: WSL カーネル
インストール中: WSL カーネル
WSL カーネル はインストールされました。
ダウンロード中: Ubuntu
要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。
参考
Ubuntuインストール
Windows再起動したところ、勝手にUbuntuのウインドウが立ちあがり開いてインストールが始まった。
Installing, this may take a few minutes..
WslRegisterDistribution failed with error: 0x80370110
Error: 0x80370110 ???????????????????????????????????
Press any key to continue...
0x80370110
エラーにより失敗。
とりあえずダメ元でスタートメニューからUbuntuを開きなおしてみる。
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:
なぜか成功。
ユーザー名、パスワードを設定し、無事ユーザが作られる。
参考
Ubuntuセットアップ
プロキシ設定
プロキシ環境下なので、諸々の前に設定しておく。適当な場所にシェルスクリプトを作成。
$ vi ~/set_proxy.sh
#!/bin/sh
export http_proxy="http://プロキシサーバー:8080"
export https_proxy=$http_proxy
export ftp_proxy=$http_proxy
export all_proxy=$http_proxy
export HTTP_PROXY=$http_proxy
export HTTPS_PROXY=$http_proxy
export FTP_PROXY=$http_proxy
export ALL_PROXY=$http_proxy
export no_proxy="127.0.0.1,localhost"
export NO_PROXY=$no_proxy
git config --global http.proxy $http_proxy
git config --global https.proxy $http_proxy
git config --global url."https://".insteadOf git://
若干過剰な気はするが、まあいいでしょう。
実行権限を付与して、ログイン時に呼ばれるようにする。
$ chmod +x ./set_proxy.sh
$ echo "source ~/set_proxy.sh" >> .profile
sudo
利用時には環境変数は引き継がれない。
sudo -E
で全ての環境変数の引継ぎもできるらしいが、プロキシだけ個別設定しておく
$ sudo visudo /etc/sudoers.d/proxy
Defaults env_keep="http_proxy"
Defaults env_keep+="https_proxy"
ftpとかまで書くの面倒になってしまった。トラブらないことを祈る
- 【Proxyの外に出れない僕達のために】Proxy 環境下で sudo add-apt-repository する方法【と、sudoとhttp_proxyのなんやかんや】 - Qiita
- visudoコマンドでsudoersファイルを編集する - Qiita
定番の作業
$ sudo apt update
$ sudo apt full-upgrade
ちなみに、 apt update
のあと2週間作業中断していて apt full-upgrade
から再開したら、E: Failed to fetch .... 403 Forbidden [IP: ... ]
というエラーが出ました。もう一度 sudo apt update
でパッケージの一覧を更新することで解消しました。
cliツールのインストール
homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
homebrewインストール後、言われた通りにPATHに追加したり、buid-essentialのインストールしたりした。
GitHub CLI
$brew install gh
$ gh auth login
案内に従ってログインした。
各種Windowsアプリケーションのインストール
環境構築というほどでもないけど、一応メモ。
macOSでいうhomebrewに相当するものを探していたら winget というMS公式のパッケージマネージャがあったので使ってみる。Twitterでざっと見た感じhomebrewほどの完成度ではないという評判?
winget search
で検索できる。winget.runで探すのもあり。
winget install -e --id Docker.DockerDesktop
winget install -e --id Microsoft.VisualStudioCode
winget install -e --id Microsoft.WindowsTerminal
winget install -e --id Zoom.Zoom
Docker設定
Docker Desktopを起動しようとすると、"You need to log out of Windows ..."という通知が出て起動しないので、いったんWindowsを再起動。
- Docker Engineの設定を開き、
"features": {"buildkit": true"}
を削除 - Resource > WSL INTEGRATIONの設定を開き、 Ubuntuをオン
![](https://storage.googleapis.com/zenn-user-upload/d94b43a5c8ce-20220603.png
Dockerプロキシ
試行錯誤の末やっと解決したので、もしかしたら必要ないステップがあるかもしれない。
- Docker Desktopのプロキシ設定
- ~/.docker/config.json に設定
- プロジェクトのdocker-composeファイルへの設定(args, environments)