🐧

devcontainer の sed コマンドで Permission denied が発生する

2023/10/21に公開

概要

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