ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Mac を使って Docker で Go 環境を構築してみる

Go 言語の勉強がしたくなり、Mac で開発環境を準備してみました。

docker の準備

docker のセットアップは以前調査した内容を参考にします。
a1026302.hatenablog.com

作業用ディレクトリ作成

mac でターミナルを開いて Desktop に移動します。

$ cd ~/Desktop 

docker 用の作業ディレクトリを作成します。

$ mkdir dockers
$ cd dockers
$ mkdir go
$ cd go
$ mkdir src

ファイル準備

以下のコマンドで、docker-compose.yml を作成します。

$ touch docker-compose.yml

ディレクトリ構成

作業

/go/
|-- docker-compose.yml
+-- src    # ソース用ディレクトリ

docker-compose.yml の作成

mac で修正したコードをコンテナに反映させたいので「volumes」でパスの設定を行います。
「./:/go」で「:」の左がホスト、右がコンテナのパスになっている。

version: "3"

services:
  golang:
    image: golang:1.15.1
    tty: true
    volumes:
      - ./:/go
    environment:
      - "GOPATH=/go"

動作確認

コンテナを起動

以下のコマンドで docker コンテナを起動させます。

$ docker-compose up -d
Creating network "go_default" with the default driver
Pulling golang (golang:1.15.1)...
1.15.1: Pulling from library/golang
d6ff36c9ec48: Pull complete
c958d65b3090: Pull complete
edaf0a6b092f: Pull complete
80931cf68816: Pull complete
813643441356: Pull complete
2c05b70ce67b: Pull complete
e82ad91b19e9: Pull complete
Digest: sha256:bd7a499445abe17605c3c29ac4d924207c31f0274bcc011e933533ac603645e7
Status: Downloaded newer image for golang:1.15.1
Creating go_golang_1 ... done

コンテナに入ってみる

以下のコマンドで docker コンテナに入ります。

docker-compose exec golang bash
root@fe992faf9c61:/go# 

スクリプト実行

sample.go というファイルに以下のコードを入力します。

package main
import "fmt"

func main() {
    fmt.Println("Hellow world!")
}

以下のコマンドで実行します。

$ go run sample.go
Hellow world!

参考にしたサイト

qiita.com