Debianにリポジトリを登録してChromeを入れようとしたところ apt-key が廃止されることがわかった。
代替方法を調査したのでメモ
ひとまとめで管理していたリポジトリの鍵を個別で管理し、信用できないサードパーティのリポジトリの鍵は公式の鍵の場所ではなく別の場所で管理しろということらしい。
方法
鍵を一旦取り込みバイナリ形式でエクスポートする
リポジトリ指定時に使用する鍵を指定
以下の用にリポジトリ指定を書き換えた
修正前:
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
修正後:
deb [arch=amd64 signed-by=/usr/local/share/keyrings/chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main
以下、bullseyeにChromeを入れたときの例
node:bullseye-slimにChromeをインストール
FROM node:bullseye-slim
## 1. 準備
RUN apt update -y && \
apt install -y curl gpg && \
mkdir -p /usr/local/share/keyrings/
## 2. インストール
# リポジトリキーを取得し一旦インポート
RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --no-default-keyring --keyring /tmp/temp-keyring.gpg --import && \
# リポジトリキーをバイナリ形式でエクスポート
gpg --no-default-keyring --keyring /tmp/temp-keyring.gpg --export --output /usr/local/share/keyrings/chrome.gpg && \
# リポジトリキーを指定してリポジトリを登録
sh -c 'echo "deb [arch=amd64 signed-by=/usr/local/share/keyrings/chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' && \
# インストール
apt update -y && \
apt install -y google-chrome-stable