はじめまして、新入社員のせしょうです!
今回、研修中にGASを触る機会があり、せっかくなのでブログにまとめてみました!
よろしくお願いします。
本記事とこれ以降に投稿する2つの計3つの記事を通して、GASのコードをローカルで管理(実行、デプロイ)できるようにすることを目的とします。
3つの記事の構成は、以下のようにしていく予定です。
1. コンテナでの環境開発 ←本記事
よろしくおねがいします!!
1. 概要
GASをローカルで管理するための前段階。
ローカルの環境を汚したくないので、VS Code + Dockerでコンテナを作成してみました。
2. 必要なツールと拡張機能
- VS Code
- Remote Container
- Docker Desktop
動作確認済み環境
Mac
- MacOS : Big Sur ver:11.6
- vscode : 1.61.2
- docker Engine : 20.10.8
Windows
- Windows 10
- vscode : 1.61.2
- Docker Desktop: 4.0.1
- docker Engine : 20.10.8
※ Windowsの場合はwsl2の環境を作成しておく
WSL2の環境構築については、以下を参照
3. 目標とするディレクトリ構成
4. 今回の記事で作られるディレクトリの構成出
5. devcontainer.jsonの作成
- vs codeでコンテナを作成するディレクトリを開く
- devcontainer.jsonを作成
- F1キー or Ctrl(⌘Cmd) + Shift + P
- Remote-Containers:Rebuild and Reopen in Container
- Select a container configuration definition
- Node.js
- Node.js version
- 16-bullseye
- Select additional features to install
- 選択なし
6. Dockerfileの編集
最終行に、 RUN npm install @google/clasp -g を追加
7. docker-compose.ymlの作成
docker-compose.ymlを作成する
※ Dockerfileの名前を変更していない場合は ./.devcontainer/node.dockerfile を ./.devcontainer/Dockerfile に変更
現在のディレクトリ構成
ここで、本記事の今回の記事で作られるディレクトリの構成が完成
8. devcontainer.jsonの編集
- dockerComposeFile
- 参照するdocker-compose.ymlを指定
- service
- docker-compose.ymlに記載しているサービス名を指定
- workspaceFolder
- docker-compose.ymlのworking_dirの値を指定
- "mhutchie.git-graph"
- gitのネットワークが見れる
- “yzhang.markdown-all-in-one”
- markdownの保管機能が働く
- 今後README.mdを書くときに便利
※拡張機能のセットアップ方法は以下の通り
方法1
拡張機能>(追加する拡張機能)>⚙マーク > 拡張機能のIDをコピー
を選択し、上記のように"extentions"に記述する。
方法2
(.devcontainerディレクトリを開いている状態という条件のもと)
拡張機能>(追加する拡張機能)>⚙マーク > Add to devcontainer.json
で自動的に指定した拡張機能が devcontainer.json に追加される。
9. コンテナのビルド
- VS Codeでコンテナを作成するディレクトリを開く
- コンテナのビルド
- F1キー or Ctrl + Shift + P
- Remote-Containers:Rebuild and Reopen in Container
上記のステップでコンテナが立ち上がり、以下のようにコンテナ内へ移動する。
10. 確認
clasp commandが使用できるかの確認
claspコマンドが入っているかを確認。
ターミナルにてclasp --helpを入力後、以下のように出力されればOK
拡張機能の確認
devcontainer.jsonのextentionsに記述した、拡張機能が入っているかを確認。
DEV CONTAINERに指定した、拡張機能が入っていることが確認できればOK
次回
今回は、VS Code + Dockerでコンテナを作成してみました。
GASをローカルから実行を行うには、GCPとの連携が必須のため、次回は、GCPとGASとの連携を行います。
ここまで読んでいただき、ありがとうございます。 それでは、また次回の記事でお会いしましょう。
せしょう