🐧
devcontainer の sed コマンドで Permission denied が発生する
概要
devcontainer で sed コマンドを実行すると Permission denied が発生したので解決します。
sed: couldn't open temporary file xxxxx: Permission denied
Docker Descktop が Mac の新しいファイルシステム VirtioFS を使用するようになったため発生したようです。
sed のバージョンを 4.8 にあげることで解決します。
環境
- ホストマシン: macOS Ventura 13.6
- Docker Descktop: Version 4.24.2
- sed: (GNU sed) 4.7
解決策
Dockerfile に次のコードを追加して sed のバージョンを 4.8 にあげます。
.devcontainer/Dockerfile
RUN wget https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz \
&& tar -Jxvf sed-4.8.tar.xz \
&& cd sed-4.8 \
&& ./configure \
&& make \
&& make install
コンテナをリビルドして sed のバージョンが 4.8 になったことを確認します。
$ sed --version
sed (GNU sed) 4.8
Copyright (C) 2020 Free Software Foundation, Inc.
Discussion