LoginSignup
2
2

More than 3 years have passed since last update.

VSCode + Remote Containerで環境構築(go編)

Last updated at Posted at 2020-12-21

n版煎じかなとも思いつつ、md思い出しがてらとか鮮度とかいろいろ考えてとりあえず書いてみる。


0. 最新記事への誘導

簡単なgoスクリプトを試すだけならこの環境でも十分ですが、本格的にアプリを開発しようとするときにはきちんとした環境を構築したほうがいいということで、別途後続記事を書いたのでリンクを張っておきます。

VSCode + Remote Containerで環境構築(Go・応用編)
https://qiita.com/honami/items/139ef1e5dc0e9f2caf27

1. 前提環境

これ以外には基本的に準備不要。VSCode必要プラグイン(Remote Containers)については次項で途取り上げる。

Windows 10(Pro)で動作確認しているが、恐らくhome含め他OSでも問題ない(homeの場合は別途WSL2が必要)。

2. 必要プラグインの導入

Remote - containers

拡張機能(Extension)のタブを開き、検索欄に"Remote Containers"と入力する(記述現在では一番上に出てくるが、念の為同一かどうかを確認すること)。

remote-containersプラグイン

当該プラグインのインストールを実施する。

3. 作業フォルダの準備

$ mkdir test-go

任意の場所に作成。以降、このフォルダを基準とする(CUIで書いているが、Windowsから作成しても良い。フォルダ名は任意。余談だが筆者はgitbashで作業した)。

4. 作業フォルダに設定ファイルを生成

"Remote-Containers:Add Development Container Configration Files..."を実行(画像一番下)。恐らくコマンドパレットを"Ctl+Shift+p"で開いて補完を効かせるのが早い。

設定ファイルの追加

初回は作業フォルダを要求されるため、先程mkdirしたフォルダを開く。

2020-12-18-10-05-19.png

再度"Add Development..."を実行すると、いろいろな言語名がアルファベット昇順で出てくるので、goを選択(クリック)。

設定する言語の選択

バージョンを聞かれるので選択。基本的にはデフォルトで良いので今回は1をクリック。直後にnode.jsを入れるか聞かれるが、ひとまず今回はチェックを付けずにOKを押下して進める。
image.png

".devcontainer"フォルダと、その中にファイルが2つ(画像左)生成されていることを確認する。このとき右下に"reopen(再展開)"を要求するダイアログが出るので押下する。

生成されたファイル

5. コンテナの生成

前項最後のダイアログ、もしくはコマンドパレットから"Remote-Containers: Reopen in Container"を実行。

初回起動はコンテナの生成とコンテナ内でのインストールが走るため時間がかかる(参考までに筆者環境で約5分)。二回目以降は処理済みとなり起動が早くなる。

終了するとVSCodeはコンテナ内部になっている。

6. Hello Worldを作成して動かす

(コンテナに入ったVSCodeで)ターミナルを開き、hello.goを作成。そのままエディタで編集(viで作ってもいい)。なお、以降のコマンドはVSCode内のターミナルで実行しているものとする。

$ touch hello.go

hello.go
package main

import "fmt"

func main() {
    fmt.Printf("Hello world\n")
}

作成した"hello.go"を実行。

$ go run hello.go

ビルドして実行する。

$ go bulid hello.go
$ go ./hello

windows向けのexeを作る場合、一手間必要。

$ go set -w GOOS=windows
$ go build -o hellowin.exe hello.go

(このhello.goの実行ファイルだと処理実行後一瞬で消えてしまうため、cmdから動作確認するのが吉)。

D:\hoge\test-go>hellowin

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2