Go言語の開発環境を構築するのはそれほど難しくありません。
ソースファイルをダウンロードして適当なディレクトリに展開するか、インストーラを実行するだけです。
(場合によってはパスを通す必要があります)
しかし、ローカル環境にはあまり手を加えたくないというシチュエーションもあるかと思います。
そういう場合はDockerを使うと便利です。
この記事ではDockerを使ってGo言語の開発環境を構築する方法を説明します。
前提条件
- Dockerが動いている環境であること
構築手順
作成したプログラムなどを配置する作業用のディレクトリを作成します。
# コマンド例
mkdir -p /home/hoge/docker/golang/src
STEP1で作成した作業用ディレクトリに移動します。
cd /home/hoge/docker/golang/src
下記のコマンドを実行してコンテナを作成します。
# コマンド例
sudo docker run -v "$PWD":/usr/src -w /usr/src -itd --name golang-1 golang bash
下記のコマンドを実行してコンテナが作成されているかを確認します。
sudo docker container ps
# 結果の例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
62abcd23d93a golang "bash" 55 seconds ago Up 54 seconds golang-1
以上でGo言語の開発環境の構築は完了です。
使用例
簡単なプログラムを作って実際に使ってみます。
以下は全てホスト側での操作になります。
構築手順STEP1で作成した作業用ディレクトリに移動して下記のソースをmain.goとして保存します。
package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}
STEP1で配置したプログラムソースを下記のコマンドで実行させます。
sudo docker exec golang-1 go run main.go
# 結果
Hello, world!
「Hello, world!」と表示されたら問題なく実行されています。
STEP1で配置したプログラムソースを下記のコマンドでビルドして実行可能なファイルを生成します。
今回の例では「hello」というファイル名にします。
sudo docker exec golang-1 go build -o hello main.go
この「hello」というファイルはビルドしたアーキテクチャ上で実行可能なファイルです。
同一アーキテクチャであればGo言語がインストールされていない環境でも実行させることができます。
作業用ディレクトリに「hello」というファイルが生成されているので実行してみます。
./hello
# 結果
Hello, world!
「Hello, world!」と表示されたら問題なく生成&実行されています。
まとめ
不要になった場合はコンテナやイメージを削除するだけで済むのでちょっと使いたいときなどに便利だと思います。
この記事がGo言語の開発環境をどうしようか悩んでいる方の参考になれば幸いです。
コメント