Lesstep
GitHub Actions・Ubuntu 26.04・2026年11月4日に確認

Ubuntu 26.04 の Docker で Postgres が起動しない:「docker-default//&unconfined」

Linux カーネルの AppArmor の修正(08c2f7c8d4b1、「apparmor: fix unconfined user namespace restriction forced stack」)が、Ubuntu 26.04 の新しいカーネルと Debian 13 の 6.12.115 に入りました。Ubuntu は kernel.apparmor_restrict_unprivileged_unconfined=1 を最初から有効にしていて、これがあるとカーネルはコンテナのプロファイルを重ねるようになりました。プロセスは docker-default ではなく docker-default//&unconfined として動きます。Docker の既定のプロファイルは、docker-default という名前の相手にしかシグナルを送らせないので、同じコンテナのプロセスどうしでシグナルを送れなくなります(moby #54099、未解決)。

どう見えるか

gosu は Go で書かれていて、Go はスレッドごとにシグナルを送ってすべてのスレッドのユーザーを変えます。そのシグナルが断られると待ち続けるので、コンテナは落ちずに止まったままになります。

報告のあった環境

つまり GitHub Actions では、これらのカーネルで動くセルフホストのランナーと、他社のランナーのイメージで起きます。GitHub がホストするランナー(イメージ 20261026、ubuntu-24.04 と ubuntu-26.04 のどちらもカーネル 7.0.0-1017-azure)では、11月4日の時点で報告はありません。

ホストを確かめる

uname -r
sysctl kernel.apparmor_restrict_unprivileged_unconfined
docker run --rm busybox:1.36 sh -c 'cat /proc/self/attr/current; sleep 30 & kill -TERM $! && echo SIGNAL_OK || echo SIGNAL_DENIED'

当てはまるホストでは docker-default//&unconfined (enforce) と SIGNAL_DENIED が出ます。

コンテナ1つの直し方:AppArmor のプロファイルを外す

services:
  postgres:
    image: postgres:17
    options: >-
      --security-opt apparmor=unconfined
      --health-cmd pg_isready
      --health-interval 5s

ワークフローの外なら docker run --security-opt apparmor=unconfined です。ジョブのコンテナなら、container: の下に同じオプションを書きます。ホストはそのままで、そのコンテナだけ AppArmor を外します。シグナルを断っているのは seccomp ではないので、--security-opt seccomp=unconfined では直りません。

ホストの直し方:sysctl

echo 'kernel.apparmor_restrict_unprivileged_unconfined = 0' | sudo tee /etc/sysctl.d/99-container-signals.conf
sudo sysctl --system

コンテナは docker-default のままになり、またシグナルを送り合えます。runs-on では、ある利用者がイメージの preinstall のステップで同じ sysctl を設定して、ビルドが通るようになりました(runs-on #116)。Ubuntu がわざと有効にしている制限を切ることになるので、できるならコンテナごとのオプションを使います。

ほかの手

見分け方

ほかの 26.04 の失敗

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

JetBrains Marketplace で入れる

GitHub と GitHub Actions は GitHub, Inc. の商標、Ubuntu は Canonical Ltd. の商標、Debian は Software in the Public Interest, Inc. の登録商標、Docker は Docker, Inc. の商標、PostgreSQL は PostgreSQL Community Association の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・Canonical・Software in the Public Interest・Docker, Inc.・PostgreSQL のプロジェクト・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:「The ubuntu-latest label will migrate to Ubuntu 26」 · Ubuntu 26.04 の bubblewrap · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English