Intel ベースの macOS や Ubuntu で正常にビルド & 起動する Dockerfile を、CPU が ARM64 の Debian ベースマシンでビルドすると「
error: exec: "apparmor_parser": executable file not found in $PATH
」エラーが発生する。
【エラーログ】リポジトリのルートにDockerfileのあるリポジトリからDockerイメージの作成
$ docker build -t sample:local https://github.com/<your name>/<your repo>.git
Sending build context to Docker daemon 5.516MB
Step 1/15 : FROM golang:1.18-alpine AS build_base
---> 3cb4fa46c0ae
Step 2/15 : RUN apk add --no-cache git gcc ca-certificates libc-dev
---> Running in 02db750926f2
AppArmor enabled on system but the docker-default profile could not be loaded: running `apparmor_parser apparmor_parser --version` failed with output:
error: exec: "apparmor_parser": executable file not found in $PATH
- マシン: NanoPi Neo2
- OS: Armbian (22.05.3, Bullseye) aarch64
- Kernel: 5.15.48-sunxi64
TL; DR (今北産業)
- AppArmor は、SELinux に似たプログラムの挙動を制限するための Linux のセキュリティ・モジュールの 1 つ。
- Intel/ARM 関係なく、ディストロによっては
apparmor
のインストールが別途必要。
特にapt install docker.io
で Docker のランタイムのみインストールした場合などには必須のモジュール。 -
apt install apparmor apparmor-utils
でインストールする。
参考文献
- AppArmor @ Wikipedia
- Issue #702 : Upgrade to v0.21.0-k3s1r0, get CreateContainerError on all pods | K3OS | Issues @ GitHub