中国でソフトウェア開発を行う方法 Part1

2024-08-15

中国でソフトウェア開発を行う方法 Part1

中国で快適なエンジニアライフを

ひさしぶりに中国へ行ってきました。

相変わらず楽しかったのですが、今回初めてPCを持って行って中国でweb開発を行いました。せっかくなので中国で開発を行うためのTipsを記事にしようと思います。

自分の備忘録的意味もありますが、あまり日本語で記事にしている人がいないので誰かのお役に立てればと思います。いろいろ知見が溜まってきたらまた書きますが、まだ自分も経験が浅いので今日はVPNとDocker周りについて書いていきます。

瀋陽故宮
瀋陽故宮

VPN

まずは日本で開発に使っているほとんどのwebサービスですが、中国では使用が禁止されているためVPNサービスを使って海外のサーバー経由で使用することになります。

日本で有名なものだとMillenVPNExpressVPNがありますが、どれも動作が安定しません。それどころか自分の経験では全く中国で使えなくなってしまったこともあります。

個人的におすすめなのはQuickQというVPNサービスです。有料ですがそこまで値段も高くはなく、最も動作が安定しています。というのも自分はこのサービスを中国人の友人から教えてもらったのですが、中国本土の人がよく使っているサービスだからです。Mac, Windows, Ubuntu, スマホと各環境向けのアプリケーションが用意されている点がポイントが高いです。

QuickQ
QuickQ

さらにTVerやNetflix, NICONICO動画といった人気サービスに特化した接続を選択でき、それを選択すると問題なく海外アクセスの制限を突破できるようになっています。めちゃくちゃ高機能ですね。

最近だとChatGPTやClaudeを1,2回無料で使えて、さらに使いたい場合はQuickQ経由で購入できる機能もあるみたいです。ただ日本人の場合普通に自国で購入したアカウントにログインすればいいだけなので、これは主に中国人向けの機能ですね。

Docker

開発ではDockerコンテナを使う人も多いと思いますが、残念ながら中国では2023年ごろからDockerhubへのアクセスが制限されておりDockerhubからイメージをpullできない、もしくはできても遅すぎてタイムアウトしてしまう現象が起こります。

これを回避する方法としては中国国内のミラーを使用することが推奨されており、実際に私もその方法でimageをpullしてきて開発を行っていました。ミラーを設定すると「そちらのミラーが第一優先で使われるようになる」点に注意が必要です。

私はDocker Desktopの代わりにOrbstackを使っているのですが、その場合の設定方法は以下の通りです。

  1. ~/.orbstack/config/docker.jsonに以下を追記する
{
    "registry-mirrors": [
        "https://docker.m.daocloud.io",
        "https://huecker.io",
        "https://dockerhub.timeweb.cloud"
    ]
}
  1. orb restart dockerでDockerを再起動して設定を読み込ませる
  2. 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日以内に審査して通ればすぐにでもイメージをレジストリに追加してくれます。便利すぎますね。

daocloudに上げられたissue
daocloudに上げられたissue

(※ ホワイトリストに加えるという表現がされていたので、イメージを追加するという説明は技術的に正しくないかもしれません)

終わりに

数回の開発でも意外と細かいTipsが貯められました。また中国に行った際には記事にしようと思います。では最後に旅行の写真を貼ってお別れにします。

中国のショッピングモール内には秋葉原のような電気街がある場所も多いです
中国のショッピングモール内の電気街
電気街の中のPC周辺機器ショップです。ロジクールや中国メーカーのマウスやキーボードが中心で、日本のように自作キーボードなどは一般的でないようでした
電気街の中のPC周辺機器ショップ
公園に行くと川が直近の大雨で濁流になっていた。背景の構想マンションは特定の建設業者によって一気に建てられた紋切り型の建築で、共産主義を感じる
街中の公園と大雨で氾濫した川。背景には共産主義的な紋切り型の高層マンションが並ぶ
プールやウォータースライダーで遊べるテーマパーク。中国はなんでも規模が大きい。
プールやウォータースライダーで遊べるテーマパーク。中国はなんでも規模が大きい。
リラックス設備が併設された温泉施設。果物食べ放題アルコールソフトドリンク飲み放題と日本では考えられない豪華さ。中国ではよくある施設。
リラックス設備が併設された温泉施設。果物食べ放題アルコールソフトドリンク飲み放題と日本では考えられない豪華さ。中国ではよくある施設。
内モンゴルの羊のしゃぶしゃぶ料理。パクチーやネギ、ニンニクなど大量の薬味を入れたポン酢もしくは胡麻ダレで楽しむのが一般的。
内モンゴルの羊のしゃぶしゃぶ料理。パクチーやネギ、ニンニクなど大量の薬味を入れたポン酢もしくは胡麻ダレで楽しむのが一般的。

最後まで読んでいただきありがとうございました!