Think Twice
IT技術メモ | Go言語のメモ
Created: 2023-05-08 / Updated: 2023-06-26

Docker ComposeでGo言語の開発環境を構築する


Docker Composeを使って、手軽にGo言語の開発環境を整える手順をメモしておきます。

目次


はじめに

前提

手順

以下手順で進めます。

それでは始めましょう。

1. 必要なファイルの準備

作成するファイルなど

以下のようにプロジェクトディレクトリを作成します。(この例ではgo-dev1としています)

プロジェクトディレクトリ
Copy
go-dev1/
├── Dockerfile              ・・・(1)
└── docker-compose.yml      ・・・(2)

(1)Dockerfile 作成

Dockerfile
Copy
FROM golang:1.17

WORKDIR /app

# go.mod と go.sum ファイルを生成するために go mod init を実行
RUN go mod init go-dev1
# 依存関係のパッケージをダウンロードし、go.sum ファイルを生成
RUN go mod download

COPY . .

# コンテナを起動し続ける
ENTRYPOINT ["tail"]
CMD ["-f", "/dev/null"]

(2)docker-compose.yml 作成

docker-compose.yml
Copy
version: '3.9'

services:
  app:
    build: .
    volumes:
      - .:/app
    working_dir: /app
    command: tail -f /dev/null

2. イメージのビルドとコンテナの起動

Copy
docker-compose up -d --build

3. コンテナに接続

4. 開発開始

(3)main.go 作成

コンテナ内
Copy
/app/
├── Dockerfile
├── docker-compose.yml
└── main.go                 ・・・(3)
main.go
Copy
package main

import "fmt"

func main() {
    fmt.Println("Hello, World.")
}

実行

Copy
go run main.go
実行結果
Copy
root@8bff32e5a2f4:/app# go run main.go
Hello, World.

コンテナの停止

コンテナの起動していた方のターミナルにて、以下コマンドを実行します。

Copy
docker-compose down

コンテナの再起動

再度、コンテナを起動させたい場合、2. イメージのビルドとコンテナの起動から実行して下さい。

参考

関連メモ

2023-06-26 更新

参照

Special thanks