こんにちは!zhackです。
これまで、C言語から始まり、JavaScript、Python、アセンブラといろんなプログラム言語をつまみ食いしてきたのですが、
次はGo言語について勉強したいなぁと思い、Go言語の開発環境を構築してみました。
先日、Dockerもインストールしたので、今回はDockerで開発環境を構築したいと思います。
Dockerのインストール手順については、以下の記事を参考にしてみてください。
Go言語開発環境構築
以下の手順で環境を構築しました。
- Docker Quickstart Terminalを起動
- 以下のコマンドを実行し、go言語のdocker imageを取得。
$ docker pull golang:latest
- 以下のコマンドを実行し、取得できているか確認。
$ docker images
REPOSITORYがgolang,TAGがlatestのimageがあればok
- 2で取得したimageをもとにコンテナを起動。
このコマンド実行後、表示されるコンテナのIDを確認。$ docker run -d -it golang:latest
- 起動したコンテナに入る。
$ docker exec -it <手順4で確認したコンテナID> bash
- パッケージマネージャーのupdateとvimのインストール
$ apt-get update $ apt-get install vim
- goスクリプト(sample.go)を作成
- スクリプトの実行
$ go run sample.go
上記の手順でスムーズに構築ができると思います。
ちなみに、手順8で実行したスクリプトの中身はこんな感じです
# sample.goの中身 package main import "fmt" func main(){ fmt.Plintln("Hello, World") }
コンテナからホストPCのディレクトリをマウントする方法
先ほどの手順では、コンテナ内で作成したスクリプトはホストPCから参照することができません。
また逆に、ホストPCのディレクトリをコンテナから参照することもできません。
このままでは、
プログラムはvimではなく、ホストPC上のソフト使って書きたい
という要望を実現することができません。
そこで、ホストディレクトリをマウントするコマンドを、コンテナ生成時に実行します。
先ほどの手順4のコマンドについて、
$ docker run -d -it golang:latest ↓ $ docker run -d -it -v <マウントしたいホストPCのディレクトリ>:<コンテナ内のディレクトリ> (例) $ docker run -d -it -v ~/dev/app:/go/src/app golang:latest
上記のように変更しましょう。
ここでつまづいたぁああ!
はい、このディレクトリをマウントするところで、躓きました。
私自身、先ほどのコマンドを変更することで
任意のディレクトリにマウントできると思っていました。
そのため、上記のコマンドを実行する前は、C:\devにマウントしようとしていました。
しかし、それは間違っていました。
マウントできるディレクトリは、
C:\Users
以下のディレクトリに限定されていました。。。
つまり、
C:\dev
のディレクトリをマウントすることはできない設定になっていました。
現状、自分がどのような設定になっているのかは、
Oracle VM VirtualBoxマネージャーから確認できるみたいです。
マウントできるディレクトリを変更するための設定について
まだ調査しきれていないので、後日ここについて記事にまとめようと思います。まとめました!
Docker Toolboxで”C/User/”以外のディレクトリにマウントする方法【Windows 10 Home】
さいごに
以上が、dockerを使った開発環境構築でした。
ディレクトリをマウントするところで結構時間がかかってしまいました、、
今回使用したdockerコマンドや、マウントするディレクトリを変更する方法について、
また後日記事にしようと思います。
ではでは!!
コメント
[…] 先日、DockerでGo言語開発環境構築にて、コンテナからホストPCのディレクトリをマウントする際、デフォルト設定におけるマウントできるディレクトリは C:Users 以下に限るという話をしたと思います。 […]
[…] Debian GNU/Linux8 ※Dockerコンテナで環境構築 ※DockerでGo言語開発環境構築参考 […]
[…] Debian GNU/Linux8 ※Dockerコンテナで環境構築 ※DockerでGo言語開発環境構築参考 […]
[…] Debian GNU/Linux8 ※Dockerコンテナで環境構築 ※DockerでGo言語開発環境構築参考 […]
[…] Debian GNU/Linux8 ※Dockerコンテナで環境構築 ※DockerでGo言語開発環境構築参考 […]
[…] Debian GNU/Linux8 ※Dockerコンテナで環境構築 ※DockerでGo言語開発環境構築参考 […]