DockerCon Virtual DockerCon が本日開幕し、同社は Docker 開発環境を発表し、これを「Docker の新しい共同チーム開発エクスペリエンスの基盤」と呼んでいます。
これまで、Docker コンテナは主にアプリケーションのデプロイメント用でしたが、Docker 開発環境によりそれが拡張され、(ご想像のとおり) 開発にも利用できるようになりました。
Docker開発環境でのコード編集
コンテナ イメージには、アプリケーションの構築に必要なツールとコンパイラーが含まれており、開発者の PC にすべてを直接インストールする煩雑さがなく、その環境を定義および再現できるなどの利点があります。これは、複数のプロジェクト タイプで作業している場合に特に複雑になる可能性があります。
開発環境の根底にある考え方は、プロジェクトの複数のブランチでの作業を容易にし、進行中の作業を他のユーザーと共有できるようにすることです。例えば、メンテナンスが必要な本番ブランチ、次期バージョン用の開発ブランチ、そして新しいアイデアを試すための実験ブランチが存在するGitプロジェクトなどが考えられます。
1台のマシン上でこれらを切り替えるのは、特に依存関係が異なる場合は複雑になる可能性があります。ブランチごとに異なるコンテナを使用することで分離できる場合があります。
新機能のユーザーインターフェースはDocker Desktop、またはプリンシパルプロダクトマネージャーのベン・デ・セント・パアー=ゴッチ氏の言葉を借りればDocker Dashboardです。開発環境は複数のコンテナで構成され、Dockerコンテナリポジトリからプルダウンされます。
Docker Desktop の開発環境で、コンテナを起動したり VS Code で編集したりするためのコントロールを備えています。
開発者はコンテナを起動し、Visual Studio Codeを開いて編集するためのコントロールを利用できます。MicrosoftのVS Codeはユーザーインターフェースをコンテナ外で実行しますが、コンテナ内でコード、コンパイラ、その他のユーティリティを操作するためのリモート処理を備えています。コンテナをリポジトリにプッシュすることで、他のユーザーがプルできるように作業中のプロジェクトを共有できます。
ここで紹介されているアイデアの一部は、VS Code の使用とともに、GitPod や GitHub Codespaces などのサービスに似ているように思えますが、大きな違いは、GitPod と Codespaces はクラウドで実行され、コラボレーションは同じコード リポジトリでの作業に基づいているのに対し、Docker 開発環境はローカルで実行され、進行中の作業を完全な作業ピースとして共有できることです。
De St Paer-Gotch 氏によると、「私たちは、既存の開発者に別の開発環境にお金を払わせるのではなく、彼らが支払ったコンピューティングを活用して、まずローカルであることに関心があります。」
Docker は正しい方向に進んでいますか?
プレビュー動画に応えて、ある開発者は、このアプローチに疑問を呈し、次のように述べた。「存在しない問題を解決しようとしているのです…コード共有だけが目的なら、コードをブラウザ内で簡単に確認できるので、プルする必要すらありません。」
さらに、私たちは通常、コードの変更に興味がありますが、デモされた機能ではそれに対する解決策はありません (ブランチをプルして diff を取得する必要があります)。
「ついに、Gitブランチ間の移動はDockerイメージ全体をプルするよりもはるかに簡単になりました。正気でそう思わない人がいるでしょうか。」
そうは言っても、開発者はこう付け加えた。「VS Code がボタンをクリックするだけでリモート コンテナーに接続できる点は特に気に入りましたが、その機能を再利用して、別の方法で売り込む必要があります。」
最初のリリースにはいくつかの制限がありますが、来月には完全に利用可能になる予定です。サポートされているIDEはVS Codeのみですが、Docker社によると、他のIDEベンダーもサポートを追加する可能性があるとのことです。
もう一つの複雑な問題は、多数のサービスから構成される大規模なアプリケーションで、開発環境が扱いにくくなる可能性があることです。「これは私たちが直面している課題の一つです。開発者は、重要なサービスについてはローカルで作業し、他のサービスは別の場所に分散させたいと考えていることは承知しています」と、デ・セント・パア=ゴッチ氏はThe Register紙に語りました。
Docker 開発環境の開発とリリースを追跡するのに最適な場所は、ここにあるロードマップです。
このサービスはいくらかかるのでしょうか?「共有機能はチームユーザー向けになります」とデ・セント・ペール=ゴッチ氏は言います。「ローカル環境で実行するだけの全体的なサービスは、誰でも無料で利用できます。」
DockerConでは、同社は他の製品のアップデートも発表しました。複数のコンテナアプリケーションを実行するツールであるDocker Composeは現在バージョン2となり、ディープラーニングなどのGPUを多用するワークロードをサポートし、本番環境用と開発環境用などの構成を簡単に切り替えられるサービスプロファイルを備えています。
しかし、Linux ユーザーは不利な立場にある。「Docker Compose v2 は現在 Docker Desktop で利用可能であり、今年後半には Docker Linux パッケージに含まれる予定だ」と同社は述べている。
Docker社はまた、ベンダーが検証済みのイメージをDockerレジストリに提出する「Docker Verified Publisherプログラム」を拡大し、現在100社以上が登録していると発表した。®