ローカルコンピュータにGitLab CIランチャーを設定しました。ランチャーは「シェル」ランチャーを使用するため、ジョブはホスト環境で直接実行されます。
Juliaには分析ツールがあります。一部のC ++コードにはいくつかの依存関係があります。ビルド時間を改善するために、これらの依存関係をjuliaパッケージにプリビルドするドッカーイメージを作成したいと思います。このようにして、Ubuntu 22.04(CIホストは22.04、カーネル6.2)に基づくドッカーイメージを持っています。この画像にはJuliaがインストールされています。私たちは使用しようとしていますバイナリジェネレータ.jlJulia パッケージをビルドするためのツールです。
イメージを構築するためにdockerfileでBinaryBuilderを実行するとエラーが発生しますABORTED (1: Operation not permitted)!
。上記には次の警告が表示されます。
警告:このシステムでは、権限のないコンテナを実行できません!これは、カーネルがユーザーの名前空間内でオーバーレイファイルシステムのマウントをサポートしていないためです。この問題を解決するために、代わりに特権コンテナを使用します。これにはsudoを使用する必要があります。このオプションを自動的に選択するには、Juliaを起動する前にBINARYBUILDER_RUNNER環境変数を「privilege」に設定してください。
この警告はここで呼び出されます。FAQの一部。しかし、このFAQのバグレポートはカーネル4.2から来ています。私はできます。想像するこれは最近カーネルで修正され、私が読む方法は次のとおりです。この投稿5.11で修正されたようです。また約束した92dbc9d
。5.11 変更ログ私にとってもそういうことだ。
したがって、重要な質問は、CIのUbuntu 22.04でこのツールを操作する方法です。 1つの方法は特権的なアクセスを提供することですが、そうすることはできますが、明らかに理想的ではありません。私はoverlayfs
彼らのよくある質問の質問が最新のカーネルで解決された赤いニシンであり、他の問題もあることを心配しています。