GoLand 2026.2 Help

チュートリアル:minikube クラスターにアプリケーションをデプロイする

このチュートリアルでは、GoLand から直接 minikube を使ってローカル Kubernetes クラスターを起動し、サンプル Go アプリケーションをデプロイする方法を学びます。 この過程で、アプリケーションをビルドし、Docker イメージを作成し、それを minikube にデプロイします。

Kubernetes をローカルで実行することは、プロトタイピング、デプロイのテスト、Kubernetes ワークフローの学習に特に役立ちます。 GoLand で利用可能な Docker および Kubernetes サポートを利用すると、クラスターの起動、リソースのデプロイ、アプリケーションの確認を IDE 内で行うことができます。

始める前に

始める前に、次のものがインストールおよび設定されていることを確認してください:

必要なプラグインを有効化する

このチュートリアルで利用する機能は、次のプラグインに依存しています:

このプラグインは、GoLand にデフォルトでバンドルおよび有効化されています。 関連機能が利用できない場合は、プラグインを無効化していないことを確認してください。

  1. Ctrl+Alt+S を押して設定を開き、 プラグイン を選択します。

  2. インストール済み タブを開き、必要なプラグインを探して、プラグイン名の横のチェックボックスを選択して有効化します。

まずはサンプルの Go プロジェクトを作成するか、GoLand で既存の Go プロジェクトを開いてください。

まずはシンプルな Node.js Express アプリケーションから始めましょう。 このアプリケーションは、 hello_express.js ファイルで Hello World! を返し、コンソールに Example app listening on port 3000! を出力します。

サンプル Go アプリケーションを作成する

  1. 新しい Go プロジェクトを作成します。

  2. main.go ファイルを作成し、次のコードを追加してください:

    package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello from GoLand and minikube!") }) http.ListenAndServe(":8080", nil) }

Node.js で空のプロジェクトを作成する

  1. 'ようこそ' 画面新規プロジェクト をクリックするか、メインメニューから ファイル | 新規 | プロジェクト を選択します。

  2. 開いたダイアログで、左側のペインから Node.js を選択します。

  3. アプリケーションの場所と名前(命名)を指定します。たとえば、 hello_world_docker

  4. 使用するローカル Node.js ランタイムを指定します。 提案されたインストールを受け入れるか、リストから別のものを選ぶこともできます。まだお使いのマシンに Node.js がない場合は、 ダウンロード をクリックしてください。 新しい Node.js アプリケーションの作成の詳細をご覧ください。

    Node.js で空のプロジェクトを作成する
  5. 作成 をクリックしてください。

アプリケーションに内容を追加する

  1. アプリケーション用に別のフォルダーを作成しましょう。これにより、後でローカルフォルダーとコンテナ内のフォルダーをマッピングしやすくなります。

    そのためには、 プロジェクト ツールウィンドウ Alt+1 でプロジェクトフォルダーを右クリックし、コンテキストメニューから 新規 を選択し、さらに ディレクトリ を選択します。 表示されたポップアップダイアログで、フォルダーの命名として app を指定します。

    アプリケーション用フォルダーを作成する
  2. アプリケーションのコードを配置する JavaScript ファイルを作成します。

    app フォルダーのコンテキストメニューから 新規 を選び、さらに JavaScript ファイル を選択します。

    JavaScript ファイルの作成、コンテキストメニュー

    表示されたポップアップダイアログで、ファイルの命名として hello_express.js を指定します。

    JavaScript ファイルを作成する
  3. 新規作成した hello_express.js ファイルをエディターで開き、次のコードを入力してください:

    const express = require('express'); const app = express(); app.get('/', function(req, res) { res.send('Hello World!') }); app.listen(3000,function() { console.log('Example app listening on port 3000!') });
  4. 予想通り、 express 参照が解決されず、ハイライトされてエラーと表示されます。 ただし、GoLand では参照上にカーソルを置くとクイックフィックスが提案されます:

    Express がインストールされていません - クイックフィックスが提案されています

    「express」をインストール リンクをクリックすると、 express package.json ファイルに追加されインストールされます。

    パッケージ.json - Express インストール済み

アプリケーションをローカルで実行する

想定通り動作することを確認するために、アプリケーションをローカルで実行しましょう。

  • hello_express.js ファイルを開き、エディタータブの任意の場所を右クリックし、コンテキストメニューから 『hello_express.js』を実行 を選択します。

    アプリケーションをローカルで実行する

    実行 ツールウィンドウが開かれ、 Example app listening on port 3000! が表示されます。

    http://localhost:3000 でブラウザーを開くと、ページには想定通り こんにちは、世界! が表示されます。

    アプリケーションがローカルで実行中です

アプリケーションをビルドする

アプリケーションを Kubernetes にデプロイする前に、ビルドしてコンテナイメージにパッケージ化する必要があります。 このチュートリアルでは、 go build コマンドを使ってアプリケーションのソースコードをコンパイルし、実行可能ファイルを生成します。

  1. ターミナル ツールウィンドウを開くには、 表示 | ツールウィンドウ | ターミナル をクリックするか Alt+F12 を押してください。

  2. アプリケーションをビルドするには、次のコマンドを実行します:

    go build -o app .
  3. app 実行可能ファイルがプロジェクトルートに表示されていることを確認してください。

アプリケーションをコンテナ化する

このステップでは、ビルド済みのアプリケーションを Docker イメージにパッケージ化します。 Kubernetes はこのイメージを後で Pod 内のコンテナとして実行します。

Dockerfile を作成する

  1. プロジェクト ツールウィンドウ Alt+1 で、プロジェクトルートを右クリックし、 新規 にカーソルを合わせてから ファイル をクリックします。

  2. 新規ファイル… ダイアログで Dockerfile を入力し、 Enter を押します。

    プロンプトが表示された場合は、ファイルを Git に追加することに同意してください。

  3. 次のコードを新しい Dockerfile に貼り付けます。

    FROM golang:1.26-alpine AS builder WORKDIR /app COPY go.mod ./ RUN go mod download COPY . . RUN go build -o server . FROM alpine:latest WORKDIR /app COPY --from=builder /app/server . EXPOSE 8080 ENTRYPOINT ["./server"]

作成した Dockerfile には、Docker イメージを 2 段階でビルドする手順が含まれています。 最初のステージでは Go アプリケーションをコンパイルします。 次のステージでは、コンパイル済みの実行可能ファイルを軽量な Alpine Linux イメージにコピーします。

このイメージからコンテナを起動すると、Docker は ./server コマンドを実行して Go アプリケーションを起動します。

Dockerfile を作成する

  1. プロジェクトフォルダーのコンテキストメニューから 新規 を選択し、さらに Dockerfile を選択します。

    Dockerfile の作成 - コンテキストメニュー
  2. 新しく作成した Dockerfile を開き、次のコードを入力してください:

    FROM node:22-alpine WORKDIR /tmp COPY package*.json . RUN npm ci --omit=dev COPY ./app/ ./app/ CMD ["node","./app/hello_express.js"]

    この Dockerfile には、 node:22 イメージを Docker Hub から基にしてイメージをビルドする手順が含まれています。

    このイメージからコンテナを実行すると、Docker は /app/ ディレクトリの内容をコンテナ内の /tmp/app/ ディレクトリにコピーします(今回の場合、 /app/ ディレクトリには hello_express.js ファイルが含まれます)。 package.json ファイルは /tmp/ にコピーされます。

    その後 Docker はカレント作業ディレクトリを /tmp に設定し、 node ./app/hello_express.js を実行します。 その結果、コンテナのログに Example app listening on port 3000! が表示されるはずです。

Docker イメージをビルドする

  1. プロジェクト ビューから、 Dockerfile をエディターで開きます。

  2. ファイルを編集してください:

    • 変更

      ENV RAILS_ENV="production" \ BUNDLE_DEPLOYMENT="1" \ BUNDLE_PATH="/usr/local/bundle" \ BUNDLE_WITHOUT="development"

      to

      ENV RAILS_ENV="development" \ BUNDLE_PATH="/usr/local/bundle"
    • 変更

      EXPOSE 80 CMD ["./bin/thrust", "./bin/rails", "server"]

      to

      EXPOSE 3000 CMD ["./bin/rails", "server", "-b", "0.0.0.0", "-p", "3000"]
  3. Dockerfile 内のガターで The Run on Docker icon をクリックし、 新規実行構成 を選択します。

    エディターから新しい Dockerfile 実行/デバッグ構成を作成する
  4. 実行構成の編集 ダイアログで、 イメージタグ フィールドに go-minikube-appコンテナー名 フィールドに go-minikube を入力します。 次に 実行 をクリックします。

GoLand は Dockerfile の実行構成 を作成し、Dockerfile からイメージをビルドし、そのイメージでコンテナを実行します。 プロセス全体を確認するには、 ログ タブを サービス ツールウィンドウで開いてください。

サービスツールウィンドウのログタブを開く

minikube に接続

アプリケーション入りの Docker イメージができたので、デプロイ先となるローカル Kubernetes クラスターを起動する必要があります。 minikube を利用して、GoLand からローカルのシングルノード Kubernetes クラスターを直接実行します。

Docker ドライバーで minikube を起動する

  1. ターミナル ツールウィンドウを開くには、 表示 | ツールウィンドウ | ターミナル をクリックするか Alt+F12 を押してください。

  2. ローカル Kubernetes クラスターを起動し、minikube が仮想化ドライバーとして Docker を利用するよう指示するには、次のコマンドを実行します:

    minikube start --driver=docker
  3. コマンドを実行して、クラスターが正常に稼働していることを確認します:

    minikube status

Docker ドライバーを使うと、minikube クラスターは Docker コンテナ内で実行され、ローカル開発に適した軽量な環境が提供されます。

minikube クラスターを GoLand に追加

  1. Services ツールウィンドウを開きます: 表示 | ツールウィンドウ | サービス を選択するか、 Alt+8 を押します。

  2. Kubernetes ノードを選択し、 クラスターの追加 ボタンをクリックしてから、コンテキストメニューから デフォルトディレクトリから を選択します。

    サービスツールウィンドウの Kubernetes ようこそ画面から新しいクラスターを追加
  3. クラスターの追加 ダイアログで minikube},{ を選択し、 クラスターの追加 をクリックします。

    追加されたクラスターは サービス ツールウィンドウで利用可能になります。

  4. サービス ツールウィンドウで minikube クラスターを右クリックし、 クラスターを接続する を選択します。

    minikube クラスターに接続

この時点で、GoLand は実行中の minikube クラスターに接続しており、その Kubernetes リソースを表示できます。 サービス ツールウィンドウから、名前空間、ノード、その他のクラスターオブジェクトを直接閲覧できます。

アプリケーションをデプロイする

チュートリアルの前半で、すでに アプリケーションイメージをローカルでビルドしました。 ただし、minikube クラスターはローカルの Docker デーモンからイメージに自動的にアクセスできません。 そのイメージを minikube に読み込んで利用できるようにする必要があります。

Docker イメージを minikube にロードする

  1. ターミナル ツールウィンドウを開くには、 表示 | ツールウィンドウ | ターミナル をクリックするか Alt+F12 を押してください。

  2. minikube でコンテナーイメージをビルドするには、次のコマンドを実行します:

    minikube image load go-minikube-app
  3. go-minikube-app イメージがクラスターで利用可能か、次のコマンドを実行して確認します:

    minikube image ls | grep go-minikube-app

    出力で docker.io/library/go-minikube-app:latest が表示されます。

イメージが minikube で利用可能になったので、次のステップは Kubernetes でどのように実行するかを説明します。 Kubernetes マニフェストを作成しましょう:

  • デプロイ:コンテナーを Pod で実行するためのもの

  • Service:アプリを Exposed し、自身のマシンからアクセスできるようにします

デプロイ マニフェストの作成

  1. プロジェクト ツールウィンドウ(Alt+1 )で、プロジェクト名を右クリックし、 新規 Kubernetes リソース を選択します。

  2. 新規 Kubernetes リソース ダイアログで、 Deployment ファイル形式を選択し、マニフェスト名として go-minikube-deployment を指定し、 Enter を押します。

    新しいデプロイを作成する

    プロンプトが表示された場合は、ファイルを Git に追加することに同意してください。

  3. 作成された go-minikube-deployment.yaml ファイルの内容を次のコードに置き換えてください:

    apiVersion: apps/v1 kind: Deployment metadata: name: go-minikube spec: replicas: 1 selector: matchLabels: app: go-minikube template: metadata: labels: app: go-minikube spec: containers: - name: go-minikube image: go-minikube-app:latest imagePullPolicy: IfNotPresent ports: - containerPort: 8080
  4. フローティングツールバーで、現在のクラスターと名前空間を選択し、 適用アイコン適用 をクリックしてローカルクラスターへ変更を適用します。

    フローティングツールバーの Apply ボタン

サービス マニフェストの作成

  1. プロジェクト ツールウィンドウ(Alt+1 )で、プロジェクト名を右クリックし、 新規 Kubernetes リソース を選択します。

  2. 新規 Kubernetes リソース ダイアログで、 Service ファイル形式を選択し、マニフェスト名として go-minikube-service を指定し、 Enter を押します。

    プロンプトが表示された場合は、ファイルを Git に追加することに同意してください。

  3. 作成された go-minikube-service.yaml ファイルの内容を次のコードに置き換えてください:

    apiVersion: v1 kind: Service metadata: name: go-minikube spec: type: NodePort selector: app: go-minikube ports: - port: 8080 targetPort: 8080
  4. フローティングツールバーで、現在のクラスターと名前空間を選択し、 適用アイコン適用 をクリックしてローカルクラスターへ変更を適用します。

アプリケーションにアクセスする

  1. エディターで go-minikube-deployment.yaml ファイルを開きます。

  2. ポートの転送 インレイヒントを - containerPort: 8080 プロパティの隣でクリックします。

  3. ポートの転送 ダイアログで、デフォルト値のまま 進む をクリックします。

  4. go-minikube-deployment.yaml ファイルで、 ブラウザーで開く インレイヒントをクリックします。

    サービスツールウィンドウで新しいポートフォワードセッションを開始

    GoLand がデフォルトブラウザーへリダイレクトし、ローカル minikube クラスターにデプロイされた Go アプリケーションを確認できます。

minikube と GoLand を使って、Go アプリケーションをローカルの Kubernetes クラスターにデプロイする方法を学びました。 この方法により、リモートクラスターを必要とせず、Kubernetes で迅速なローカルテストや検証が可能になります。

次のステップ

Kubernetes の操作方法については、以下のトピックをご覧ください:

2026 年 7 月 14 日