はじめに
Goを触りたいと感じることが多くなり、Dockerで簡易的に環境構築してみようと思ったので、やってみました。
Dockerで環境構築
Dockerfile
は以下のように記述します。
FROM golang:latest
WORKDIR /app
COPY . .
RUN go mod init myapp
docker-compose.yml
は以下のように記述します。
docker-compose.yml
services:
app:
build: .
container_name: gotest
tty: true
ports:
- 80:8000
volumes:
- .:/app
tty:trueとつけるとコンテナを永続させることができるので、docker exec
コマンドが使いたい場合はつけたほうがいいです。
main.go
にHello Dockerと表示させるスクリプトを書いてみます.
main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello Docker")
}
fmtを使わずともPrintln()
のみでも出力はできます。ただfmtを使って出力している方が多いので統一しておいたほうがいいかもしれません。(自分はそう感じました)
以上の三つのフォルダが
.
├── Dockerfile
├── docker-compose.yml
└── main.go
となっていたら準備完了です。
実行
ターミナルで以下のコマンドを入力して、ターミナルにHello Dockerを表示させてみます。
docker exec gotest go run main.go
すると
Hello Docker
と出力できました。