MENU

AIでDockerfile・GitHub Actionsを自動生成する方法|CI/CDパイプライン構築を非エンジニアでも実現する実践ガイド

「コードは書けないけど、デプロイの手作業をなくしたい」──毎回手動でサーバーに接続してファイルをコピーするのは時間のムダだとわかっていても、DockerやCI/CDの学習コストが壁になって踏み出せない方は多いはずです。

この記事では、ChatGPTやClaudeを使ってDockerfile・GitHub Actionsワークフローを自動生成し、コードの深い理解がなくてもCI/CDパイプラインを構築する方法を解説します。プロンプトをコピペするだけで、手動デプロイから自動化への第一歩が踏み出せます。

目次

CI/CDパイプラインとは?AIで何が変わるか

CI/CD(継続的インテグレーション/継続的デリバリー)とは、コードの変更を検知して自動でテスト・ビルド・デプロイを実行する仕組みです。従来は「DevOpsエンジニアが設定する専門領域」でしたが、AIを活用することで次のような変化が起きています。

Dockerfile作成: アプリの実行環境を自然言語で説明するだけでAIが生成
ワークフロー設計: 「mainブランチにプッシュしたら自動デプロイ」という要件をプロンプトで渡すだけ
エラー対応: エラーメッセージをAIに貼り付けて修正案を即取得

プログラミング未経験でも、AIが出力したコードを理解しながら使えるレベルで十分機能します。まずは「AIと一緒に動かしながら覚える」感覚で試してみてください。

使用するAIツールの選び方

Dockerfile・GitHub Actionsの生成に向いているAIツールは次の3つです(2026年6月時点)。

ツール 強み おすすめ用途
ChatGPT(GPT-4o) 対話での試行錯誤がしやすい 初心者の壁打ち・エラー相談
Claude(Sonnet 4.6) 長いコードも一発生成できる 複雑なワークフロー設計
GitHub Copilot VS Code上でリアルタイム補完・説明 既存ファイルの改修・拡張

「どれが最強か」より「壁打ちしたいか・既存コードを改修したいか」で選ぶのがポイントです。この記事ではChatGPT/Claudeをチャット形式で使う手順を中心に解説します。

具体的な使い方(ステップバイステップ)

1. Dockerfileを自動生成する

DockerfileはDockerコンテナの設計図です。「どのベースイメージを使い、何のパッケージをインストールし、どのコマンドで起動するか」を記述します。次のプロンプトをコピペして、自分の環境に合わせて数カ所だけ書き換えてください。

以下の条件でDockerfileを作成してください。 ・アプリ: Pythonで作ったFlaskのWebアプリ(app.pyがエントリポイント) ・Pythonバージョン: 3.11 ・必要なパッケージ: requirements.txtに記載 ・公開ポート: 8080 ・本番環境向け(デバッグモードOFF) ・軽量なイメージを使うこと(slimやalpineを推奨) Dockerfileのコード全体と、各行の意味を日本語コメントでセットで出力してください。

ChatGPTやClaudeに貼り付けると、次のようなDockerfileが出力されます。

# ベースイメージ: Python 3.11 の軽量版 FROM python:3.11-slim # コンテナ内の作業ディレクトリを設定 WORKDIR /app # 依存パッケージを先にコピー(キャッシュを効かせるため) COPY requirements.txt . # 依存パッケージをインストール RUN pip install --no-cache-dir -r requirements.txt # アプリのファイルをすべてコピー COPY . . # 8080番ポートを公開 EXPOSE 8080 # アプリを本番モードで起動(gunicornを使用) CMD ["gunicorn", "--bind", "0.0.0.0:8080", "app:app"]

コードの意味がわからなくても大丈夫です。「このFROM行は何をしているの?」とAIに聞けば日本語で説明してくれます。理解しながら使うことがスキルアップの近道です。

2. GitHub Actionsワークフローを自動生成する

GitHub Actionsは、GitHubにコードをプッシュした際に自動でテスト・デプロイを実行するCI/CDツールです。設定ファイルは.github/workflows/フォルダに置きます。次のプロンプトでワークフローファイルを一発生成できます。

以下の要件でGitHub Actionsのワークフローファイルを作成してください。 ・トリガー: mainブランチへのプッシュ時に自動実行 ・実行内容: 1. Pythonの依存パッケージをインストール 2. pytestでテストを自動実行 3. テストが通ったら、DockerイメージをビルドしてDocker Hubにプッシュ ・必要なSecretsキー名: DOCKER_USERNAME, DOCKER_PASSWORD ・Dockerイメージ名: myapp ファイル全体を出力し、各設定の意図を日本語コメントで添えてください。

出力されたYAMLファイルを.github/workflows/deploy.ymlとして保存するだけで、次回のGitHubプッシュから自動デプロイが動き始めます。

3. SecretsをGitHubに登録する

Docker HubのパスワードなどをYAMLファイルに直書きするのはNGです(セキュリティリスク)。GitHubのSecrets機能を使って安全に管理します。

・GitHubのリポジトリページを開く
・「Settings」→「Secrets and variables」→「Actions」を選択
・「New repository secret」をクリックして、DOCKER_USERNAMEDOCKER_PASSWORDを登録

ワークフローファイル内の${{ secrets.DOCKER_USERNAME }}という記述が、ここに登録した値を自動的に読み込みます。登録後はシークレットの値は表示されないため、安全に管理できます。

実務での活用例(Before/After)

実際のBefore/Afterで効果を確認してみましょう。

作業 Before(手動) After(AI×CI/CD)
環境構築ファイル作成 ドキュメントを読んで半日 プロンプト入力で10分
コードのデプロイ SSHで手動ファイル転送(30分) GitHubにプッシュするだけ(自動)
エラー対応 Stack Overflowで調査(1時間) エラーログをAIに貼って解決(5分)
設定ファイルのチューニング 試行錯誤で数日 AIとの対話で改善点を即特定

「設定ファイルが書けないから自動化をあきらめていた」という状況が、AIを使うことで現実的に突破できます。特にデプロイの自動化は、一度構築すれば毎回の手作業が丸ごとなくなるため、長期的なリターンが非常に大きい投資です。

うまくいかない時の対処法

【よくあるエラー1】YAMLのインデントエラー

GitHub ActionsのワークフローはYAML形式で記述しますが、インデント(字下げ)がずれるだけでエラーになります。対処法はシンプルで、エラーメッセージを丸ごとコピーしてAIに貼り付け、「このエラーを修正してください。元のワークフローファイルも添付します」と伝えるだけです。多くの場合、1回のやり取りで修正案が得られます。

【よくあるエラー2】Dockerビルドで依存パッケージが見つからない

ERROR: Could not find a version that satisfies the requirementというエラーは、requirements.txtの記述ミスかPythonバージョンの非互換が原因です。エラー全文とDockerfile・requirements.txtをAIに渡して「原因と修正案を教えてください」と聞けば、多くの場合すぐに解決できます。

【よくあるエラー3】Secretsが読み込まれない

GitHubのSecretsは大文字・小文字を区別します。ワークフロー内の${{ secrets.DOCKER_USERNAME }}とGitHubに登録したキー名が完全に一致しているか確認してください。スペルミスや余分なスペースが原因になることがあります。

AIが出力するコードへの注意点

AIはあくまでも「もっともらしいコード」を生成します。次の点は自分で確認する習慣をつけてください。

・使用するベースイメージのバージョンが古くないか(脆弱性がないか)
・SecretsがYAMLにベタ書きされていないか
・本番環境と開発環境で設定を分けているか

「AIが書いたから安全」という思い込みは禁物です。生成されたコードを確認するプロセス自体が、実践的なスキルアップにつながります。

本記事のまとめ

AIを使ったDockerfile・GitHub Actions自動生成の流れをまとめます。

ステップ やること 使うAI
1 アプリ環境を自然言語でプロンプトに記述 ChatGPT / Claude
2 生成されたDockerfileをリポジトリに追加 (人間の作業)
3 GitHub Actionsワークフローをプロンプトで生成 ChatGPT / Claude
4 SecretsをGitHubに登録 (人間の作業)
5 エラーはエラーメッセージをAIに貼り付けて対応 ChatGPT / Claude

「設定ファイルが書けない」という壁がなくなれば、自動化の選択肢が大きく広がります。まずは小さなプロジェクトで一度試してみてください。AIと一緒に動かしながら覚えるのが、最も早く身につく方法です。

関連記事をもっと読む

同じテーマの記事をまとめています。あわせて読みたい記事はこちらからご覧いただけます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次