「コードは書けないけど、デプロイの手作業をなくしたい」──毎回手動でサーバーに接続してファイルをコピーするのは時間のムダだとわかっていても、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_USERNAMEとDOCKER_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と一緒に動かしながら覚えるのが、最も早く身につく方法です。
