中国でソフトウェア開発を行う方法 Part1
シルク
中国で快適なエンジニアライフを
ひさしぶりに中国へ行ってきました。
相変わらず楽しかったのですが、今回初めてPCを持って行って中国でweb開発を行いました。せっかくなので中国で開発を行うためのTipsを記事にしようと思います。
自分の備忘録的意味もありますが、あまり日本語で記事にしている人がいないので誰かのお役に立てればと思います。いろいろ知見が溜まってきたらまた書きますが、まだ自分も経験が浅いので今日はVPNとDocker周りについて書いていきます。
VPN
まずは日本で開発に使っているほとんどのwebサービスですが、中国では使用が禁止されているためVPNサービスを使って海外のサーバー経由で使用することになります。
日本で有名なものだとMillenVPNやExpressVPNがありますが、どれも動作が安定しません。それどころか自分の経験では全く中国で使えなくなってしまったこともあります。
個人的におすすめなのはQuickQというVPNサービスです。有料ですがそこまで値段も高くはなく、最も動作が安定しています。というのも自分はこのサービスを中国人の友人から教えてもらったのですが、中国本土の人がよく使っているサービスだからです。Mac, Windows, Ubuntu, スマホと各環境向けのアプリケーションが用意されている点がポイントが高いです。
さらにTVerやNetflix, NICONICO動画といった人気サービスに特化した接続を選択でき、それを選択すると問題なく海外アクセスの制限を突破できるようになっています。めちゃくちゃ高機能ですね。
最近だとChatGPTやClaudeを1,2回無料で使えて、さらに使いたい場合はQuickQ経由で購入できる機能もあるみたいです。ただ日本人の場合普通に自国で購入したアカウントにログインすればいいだけなので、これは主に中国人向けの機能ですね。
Docker
開発ではDockerコンテナを使う人も多いと思いますが、残念ながら中国では2023年ごろからDockerhubへのアクセスが制限されておりDockerhubからイメージをpullできない、もしくはできても遅すぎてタイムアウトしてしまう現象が起こります。
これを回避する方法としては中国国内のミラーを使用することが推奨されており、実際に私もその方法でimageをpullしてきて開発を行っていました。ミラーを設定すると「そちらのミラーが第一優先で使われるようになる」点に注意が必要です。
私はDocker Desktopの代わりにOrbstackを使っているのですが、その場合の設定方法は以下の通りです。
~/.orbstack/docker.json
に以下を追記する
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud"
]
}
orb restart docker
でDockerを再起動して設定を読み込ませるdocker info
で反映されたか確認する
コマンドを実行して以下のメッセージが出てくれば設定は成功しています。
Registry Mirrors:
https://docker.m.daocloud.io/
https://huecker.io/
https://dockerhub.timeweb.cloud/
Docker Desktopでも同じように/etc/docker/daemon.json
にミラーの設定を追加すればいけるようです。試していないので詳細な設定方法は調べていただく必要がありますが、同じ趣旨の設定をすれば同じように機能するはずです。
なおこれらの中国国内レジストリはVPNと同じく規制されて急に使えなる可能性もあります。実際私が調べた数年前の記事に載っていたレジストリは既に使えなくなっていました。
なので常に最新の情報をネットで参照してほしいのですが、現状私が一番使いやすいと思っているのはhttps://docker.m.daocloud.io
です。こちらにgithubのリポジトリがあります。
もしミラーに目当てのイメージが存在しなくても、このリポジトリにissueを上げると2日以内に審査して通ればすぐにでもイメージをレジストリに追加してくれます。便利すぎますね。
(※ ホワイトリストに加えるという表現がされていたので、イメージを追加するという説明は技術的に正しくないかもしれません)
終わりに
数回の開発でも意外と細かいTipsが貯められました。また中国に行った際には記事にしようと思います。では最後に旅行の写真を貼ってお別れにします。
最後まで読んでいただきありがとうございました!