はじめに
皆さんはgolangを利用していますか?
プログラミングを始めたての皆さんは、
golangに関わらず、プログラミング言語の学習や利用するときには、その言語の環境構築に苦戦するのではないのでしょうか。
私も、環境構築に苦戦して、プログラミング言語の学習を断念することが何度もありました。
しかし、これらの環境構築の問題を解決してくれるツールがあるのです。
それが、Dockerというツールになります。
Dockerでは環境構築を行うためのコマンド群などをコード化することで、どんな人でも同じ環境をすぐに構築することが可能です。
※環境構築が容易になるという以外にも色々なメリットがあるのですが、今回は割愛します。
では、早速環境構築手順をみていきましょう。
前提
- DockerをPCにインストールしていること
- インストール方法はこちらを参考にしてください
環境構築手順
環境手順は以下の通りです。
必要なファイル群を用意する
今回の環境構築に必要なファイル群は以下のとおりです。
- Dockerfile, docker-compose.yml
- Dockerを利用したコンテナ環境を構築するために利用します
- main.go
- golangで実行するためのファイルです
.
├── Dockerfile
├── docker-compose.yml
├── main.go
$ touch Dockerfile docker-compose.yml main.go
ファイルの中身は以下の通りです。
今回、golangのファイルは Hello World
を出力するコードです。
FROM golang:1.17.1-alpine3.13 as builder
WORKDIR /go/src
COPY . .
RUN go build main.go
version: "3"
services:
golang:
build: .
volumes:
- ./:/go/src
tty: true
package main
import "fmt"
func main() {
fmt.Printf("Hello World\n")
}
コンテナ環境を起動する
dockerを利用した環境を作成&起動するために以下のコマンドを実行します。
$ docker-compose up -d --build
起動が完了しているかどうかを docker-compose ps
コマンドで確認を行います。
statusがUpになっていれば成功です。
$ docker-compose ps
Name Command State Ports
--------------------------------------------------------------
<ディレクトリ名>_golang-demo_1 /bin/sh Up
これで、環境構築は完了です。
コードを実行してみる
環境構築が終了したら、実際にコードを実行してみます。
実行方法は以下の通りです。
$ docker-compose exec golang sh
# コンテナ内で、以下のコマンドを実行する
go run main.go
Hello World
Hello World と表示されれば成功です。
開発の進め方
開発はいつもと同じように勧めていただいてかまいません。
修正したコードはこちらで実行します。
終わりに
今回はdocker,docker-compose.ymlを利用して,golangの環境構築方法と実行方法を記載しました。
なにか不明点などありましたら、コメントお願いします。