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!