このページでは

開発用コンテナの使用

開発コンテナ(dev container)を使用すると、開発者間や自動ビルド・テストシステム全体で、プロジェクト向けの一貫性のある開発環境を定義・構成できます。

devコンテナは、アプリケーションの実行、コードベースの作業に必要なツール、ライブラリ、ランタイムの分離、あるいは継続的インテグレーションやテストのために、ローカルまたはクラウド上でリモートで実行できます。

dev コンテナ環境は、通常、開発中に必要となるが、最終的なデプロイには不要なツールやユーティリティが含まれているため、デプロイ環境とは異なる場合があります。

完全な仕様およびdevcontainer.json ファイル形式については、Development Containersのドキュメントを参照してください。

注: これを使用するには、「Development Container Support」プラグインを有効にしてください

開発用コンテナの設定

Qt Creator 用の開発用コンテナを設定するには:

  1. プロジェクトディレクトリに `devcontainer.json ` ファイルを作成します。
  2. devcontainer.json ファイルのcustomizations セクションの下に、qt-creator セクションを追加します。
  3. このトピックで説明されているカスタマイズオプションを使用して、開発用コンテナをカスタマイズします。

開発用コンテナのカスタマイズオプション

次の表は、devcontainer.json ファイルでQt Creator をカスタマイズするために使用できるオプションを示しています。

プロパティタイプ説明
auto-detect-kitsbooleantrue に設定すると、開発用コンテナ内のキットを自動的に検出しようとします。
run-processes-in-terminalbooleantrue に設定すると、開発用コンテナのセットアッププロセスの一部がターミナルウィンドウで実行されます。現在、docker build でのみ使用されます。
copy-cmd-bridgebooleantrue に設定すると、リモートデバイスとの通信を行うサービスである Command Bridge Helper を、マウントを試みる代わりに開発コンテナ内にコピーします。これは、開発コンテナがホストのファイルシステムをマウントできない場合に役立ちます。
mount-libexecbooleantrue に設定すると、libexec ディレクトリが開発用コンテナにマウントされます。これはCommand Bridge Helperに使用されます。
libexec-mount-pointstringdevコンテナ内のlibexec ディレクトリのマウントポイントを指定します。これはCommand Bridge Helperで使用されます。
kitsオブジェクトの配列devコンテナで使用するカスタムキットを指定します。

一般的なローカル開発のための設定

以下の `devcontainer.json ` ファイルの例は、一般的なローカル開発ワークフロー向けに dev コンテナを設定する方法を示しています。これにより、キットの自動検出が可能になり、libexec ディレクトリがコンテナにマウントされ、マウント先が指定されます。

この設定は、Qt Creator が利用可能なビルドキットを自動的に検出し、libexec ディレクトリ内の必要なヘルパーツールがコンテナ内で確実に利用できるようにしたい場合に役立ちます。

{
    "customizations": {
        "qt-creator": {
            "device": {
                "auto-detect-kits": true,
                "run-processes-in-terminal": false,
                "copy-cmd-bridge": false,
                "mount-libexec": true,
                "libexec-mount-point": "/devcontainer/libexec"
            }
        }
    }
}

カスタムキットおよびツールチェーンの設定

以下のdevcontainer.json ファイルの例は、コンテナ内で特定のQtバージョン、コンパイラ、またはツールチェーンを使用する必要がある場合の、開発用コンテナの設定方法を示しています。これは、クロスコンパイル、複数のビルド構成のサポート、またはチーム間で一貫した開発環境を確保するために役立ちます。

この設定ファイルでは、キットの自動検出を無効にし、代わりにkits プロパティを使用してカスタムキットを定義しています。このキットでは、開発コンテナ内のQt Creator が使用する Qt バージョン、コンパイラのパス、CMake バイナリおよびジェネレータ、デバッガを指定します。

また、この設定ファイルでは、オプションのcmake.variables プロパティを使用して、Qt Creator がプロジェクトを構成する際に任意のCMake変数を渡すこともできます。各キーはCMake変数名であり、値は以下のいずれかになります:

  • 単純な文字列
  • 文字列の配列(; によって単一の CMake リスト値に結合される)
  • value フィールドと、オプションのtype フィールド(BOOLSTRINGFILEPATHPATHSTATIC 、またはINTERNAL )を持つオブジェクト。このタイプは、CMakeコマンドラインに-DVAR_NAME:TYPE=value として追加されます。
{
    "customizations": {
        "qt-creator": {
            "auto-detect-kits": false,
            "kits": [
                {
                    "name": "My DevContainer Kit",
                    "qt": "/6.7.0/gcc_64/bin/qmake6",
                    "compiler": {
                        "Cxx": "/usr/bin/c++",
                        "C": "/usr/bin/gcc"
                    },
                    "cmake": {
                        "binary": "/usr/bin/cmake",
                        "generator": "Unix Makefiles",
                        "variables": {
                            "CMAKE_BUILD_TYPE": "Release",
                            "CMAKE_PREFIX_PATH": ["/opt/qt", "/usr/local"],
                            "BUILD_TESTING": {
                                "type": "BOOL",
                                "value": "OFF"
                            }
                        }
                    },
                    "debugger": "/usr/bin/lldb"
                }
            ]
        }
    }
}

プラグインの有効化と無効化」および「Docker 向け開発の手順」も参照してください

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.