【WSL2/clasp】WSL2上からclasp pushするとError: Looks like you are offline.と怒られる問題を回避する
こんにちは、しきゆらです。
今回は、タイトルの通りWSL2からclaspを使おうとするとofflineと怒られる問題が起こったのでこれを回避する方法をメモしておきます。
気が付くとWSL2からclasp push
をしようとすると、以下のようなエラーが出てしまってプッシュできない状態になっていました。
よくわからないですが、たまにプッシュできたりするので何が悪いのかよくわかりません。
WSLをインストールしなおしたりしても解決しませんでした。
また、調べてもそれっぽい生地が出てこないので「おま環」ぽい気がしています。
さて、これではWSL内で書いたGASをプッシュできません。
これを回避する方法をメモしておきます。
回避方法は単純で、Docker上からclasp push
をするだけ。
調べてみると、結構DockerでGASを管理したい人がいるようで、情報がそこそこありました。
ということで、プロジェクト諸々をDocker上にマウントしてコマンド実行できるようにしていきます。
なお、ここではGASをTypeScriptで書いたのちWebpackでビルドしたものをclaspコマンドでプッシュする流れです。
参考: https://qiita.com/rei-ta/items/61b3fde6a069b77d335d
Dockerの準備
まずは、Dockerの準備をしましょう。
Dockerのインストールは、WSLのホストであるWindows側に行えば良いようです。
Dockerfileを以下のように作成します。
FROM node:slim
RUN npm install @google/clasp -g
claspを実行する環境が必要なので、イメージとしてnodeを使います。
サイズが小さいほうが何かと便利なのでnode:slim
を使っていますが、node
が動けばなんでもよいかと思います。
また、claspを使えるようにインストールしておきます。
続いて、docker-compose.yml
を作成します。
version: "3"
services:
clasp:
build: .
tty: true
stdin_open: true
volumes:
- "/home/:/usr/src"
working_dir: /usr/src/${user}
clasp login
したのち、認証情報がhome直下にできるため/home/${user}
をマウントしています。
これで準備は完了。
offlineと怒られる問題を回避する
Dockerを立ち上げていきます。docker-compose run --rm -u ${id -u $usr} clasp /bin/bash
シェルが立ち上がったら以下のコマンドでログインします。clasp login --no-localhost
これにて準備は完了です。
あとは、コードを書いてWebapckでビルドしたものをclasp push
しましょう。
node@ded2ca180394:$ clasp push
└─ /usr/src/path/to/project/appsscript.json
└─ /usr/src/path/to/project/bundle.js
Pushed 2 files.
問題なくプッシュできていますね。
これにて回避完了です。
まとめ
手元の環境では、これにてofflineと怒られる問題を回避できました。
ちょっと手間ですが、ひとまずは回避できました。
同じような問題が起こっている場合は試して見てください。
今回は、ここまで。
おしまい