2026年8月29日
2026年8月29日
DockerでGoアプリをビルド・デプロイする方法
はじめに
Go言語はシンプルで高速なプログラミング言語として知られており、現代のWebアプリケーション開発において広く使用されています。Dockerはコンテナ化のプラットフォームであり、Goアプリケーションを効率的にビルド・デプロイするためのツールとしても役立ちます。本記事では、Dockerを使用してGoアプリをビルドし、その結果をデプロイする手順について説明します。
手順・設定方法
ステップ1: Dockerイメージを作成する
まず、Dockerfileを作成し、Goアプリケーションのビルドに必要な依存関係を定義します。この段階では、Go言語のインストールと必要最小限のパッケージ管理を設定します。
# Go言語のインストールと基本的なツールの設定
RUN apt-get update && \
apt-get install -y --no-install-recommends golang
# Dockerfileを作成し、Goアプリケーションのビルドコマンドを記述
COPY . /go/src/myapp
WORKDIR /go/src/myapp
RUN go mod download
RUN go build -o main .
ステップ2: Dockerイメージを構築する
Dockerfileが完成したら、docker buildコマンドを使用してDockerイメージを作成します。
# Dockerイメージのビルド
docker build -t my-go-app .
ステップ3: Goアプリケーションを実行する
Dockerコンテナを起動し、Goアプリケーションを実行します。この段階では、必要に応じて環境変数やポートマッピングを設定します。
# Dockerコンテナの起動
docker run -d --name my-go-app-container -p 8080:8080 -e ENV_VAR=my_value my-go-app
ステップ4: 実践/トラブルシュート/監視
実際の運用では、Goアプリケーションの健康状態をモニタリングし、問題が発生した場合は迅速に対応することが重要です。 Docker Composeを使用して複数のコンポーネント間での連携を管理することも可能です。
# docker-compose.ymlファイルでサービス定義
version: '3'
services:
my-go-app:
image: my-go-app
ports:
- "8080:8080"
environment:
ENV_VAR: "my_value"
注意事項
- Goアプリケーションの依存関係は、
go mod downloadコマンドを使用して一括でインストールします。 - Dockerコンテナはリソース効率が高く、スケーラビリティも高いため、大量のデータや複雑なフロントエンド構成が必要ない場合に特に有用です。
- 安全性上の観点から、Dockerイメージとコンテナの各層で適切な権限管理を行うことが重要です。
まとめ
1. Go言語のインストール: Go言語をDocker内で実行可能な状態に設定します。
2. Dockerfileの作成: Goアプリケーションのビルドと必要なパッケージのインストール方法を定義します。
3. Dockerイメージの構築: Dockerイメージを作成し、Goアプリケーションを含めます。
4. 実行環境の設定: Dockerコンテナ内でGoアプリケーションを起動するための設定を行います。
関連記事: