DockerでGOの環境を構築してみる(Windows)
.png)
Qiitaの下記の記事を参考にDockerでGOの環境を作成してみました。
https://qiita.com/free-honda/items/27031bdf1b20e1cfae1f
当記事は環境構築の備忘となります。
開発環境
- OS:Windows11
- Docker Desktopインストール済み
- VSCodeインストール済み
Dockerファイルを作成する
下記のコマンドを実行し、Dockerファイルを作成します。
エラーメッセージが表示されますが、Dockerファイルが作成されていれば問題ありません。
type nul > Dockerfile
下記の内容でDockerファイルを編集します。
# Goの公式イメージを使用
FROM golang:1.20
# 作業ディレクトリを設定
WORKDIR /app
# Goアプリケーションのソースコードをコピー
COPY . .
# Goモジュールを初期化し、依存関係を解決
RUN go mod init my-go-app && go mod tidy
# アプリケーションをビルド
RUN go build -o main .
# コンテナが起動時に実行するコマンド
CMD ["./main"]
# ポート8080を開放
EXPOSE 8080

アプリケーションの定義ファイル(YAML)を作成する
下記のコマンドを実行し、YAMLファイルを作成します。
type nul > docker-compose.yml
エラーメッセージが表示されますが、YAMLファイルが作成されていれば問題ありません。
下記の内容でYAMLファイルを編集します。
services:
app:
build:
context: .
ports:
- "8080:8080"
container_name: go_app

GOのサンプルプログラムを作成します
下記のコマンドを実行し、サンプル用のプログラムを作成します。
type nul > main.go
動作確認用にHello Worldと出力される処理を実装します。
package main
import (
"fmt"
"net/http"
)
// リクエストを処理するハンドラ関数
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, World!")
}
func main() {
// ハンドラ関数をルートパスに登録
http.HandleFunc("/", handler)
// サーバーをポート8080で起動
fmt.Println("Server is running on port 8080...")
http.ListenAndServe(":8080", nil)
}

コンテナを起動する
下記のコマンドを実行し、コンテナを起動します。
docker compose up -d --build
Docker画面でGOコンテナが起動していればOKです。



環境が構築できたか確認する
下記のURLを開きます。
http://localhost:8080/
問題なくHello, World!が表示されれば完了です。

以上になります。
お読み頂き、ありがとうございました。