Dockerでgo言語の開発環境を構築する

Go言語に触る必要が出てきましたので、勉強のために自分のマシンにGo言語の開発環境を構築してみようと思います。

Go言語とは

Go言語とは、Googleが2009年に開発したオープンソースプロジェクトのプログラミング言語です。元々はGoogle社内におけるソフトウェア開発の生産性などを向上させるために開発されました。

Dockerのインストール

前回インストールしたDockerを使って環境を構築しようと思います。Dockerを使用する理由は、

  1. どのOSでも簡単に環境を構築できる
  2. ホストマシンと独立した環境を構築できるため、ホストマシンを汚さない
  3. デプロイやテストが簡単

などなど。Docker素敵です。

環境構築

まずはホストマシンへ作業スペースを作成します。

$ cd
$ mkdir work
$ cd work

Dockerfileを作成する

Dockefileとは、Docker上で動作させるコンテナの構成情報を記述するためのファイルです。docker hubで配布されているDockerイメージをもとに、コンテナのインスタンスを作成することが出来ますが、今回は配布されているDockerイメージをそのまま使うのではなくDockerfileを使ってカスタマイズしたイメージを作成します。

また、docker-composeというツールを使用して、コンテナのビルドから起動までを自動化します。先に作成した作業スペースへ、Dockefileとdocker-compose.ymlを作成します。

FROM golang:latest
RUN mkdir /go/work
WORKDIR /go/work
ADD . /go/work

buildしてみる

ファイルが準備できたらdocker-composeのコマンドを使用して、コンテナを作成します。

Dockefileとdocker-compose.ymlがある作業ディレクトリで、以下のコマンドを実行します。すると、imageの作成からコンテナのビルド、起動まで実行されます。ちなみに、-dオプションをつけることでバックグラウンドでの起動をすることが出来ます。

$ docker-compose up -d --build

処理が完了したら以下のコマンドを実行してみます。すると、作成されたイメージが確認できます。

$ docker images

また、以下のコマンドを実行すると、コンテナの起動状況を確認することができます。

$ docker ps

一度コンテナを作成した後は、以下のコマンドでコンテナの開始・終了を行います。

$ docker-compose start
$ docker-compose stop

Go言語で開発してみる

早速Go言語で開発してみます。ホストマシンに作成した作業ディレクトリに、main.goファイルを作成して以下のコードを記述します。

package main
import "fmt"
func main() {
    fmt.Println("Hello, World!")
}

プログラムファイルを作成したら、以下のコマンドでmain.goをコンテナの環境で実行できます。

$ docker-compose exec app go run main.go
Hello, World!

goのアプリが正しく動作しました。これで環境構築は完了です。

コメントを残す

メールアドレスが公開されることはありません。