ものづくりのブログ

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

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

Go言語の勉強がしたくなり、Macで開発環境を準備してみました。
f:id:a1026302:20210122172154p:plain

dockerの準備

a1026302.hatenablog.com

作業用ディレクトリ作成

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

cd ~/Desktop 

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

mkdir dockers
cd dockers
mkdir go
cd go
mkdir src

ファイル準備

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-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-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