ディレクトリを作成するアクセス許可、またはディレクトリにファイルを書き込むアクセス許可がないというエラーが表示されることがあります。この場合は、ビルドを実行しているユーザーが所有していないディレクトリに、スクリプトが書き込みを試みていることが考えられます。
これは、多くのユーザーが CI 環境に移行するときのよくある問題です。
確認しておきたい大切なポイントは、MacOS ビルドの場合は distiller
ユーザーとして、Linux ビルドの場合は一般的に ubuntu
として、ビルドが実行されるということです。 これらのユーザーは、自分の $HOME
フォルダーと、/tmp
などの場所にのみ書き込みアクセス許可があります。 これは CI に固有の問題ではなく、ほとんどの Linux/Unix 環境のデフォルト設定です。
whoami
コマンドを実行して、ビルドを実行しているユーザーを確認できます。
ソリューション
- 必要なファイルをビルド実行ユーザーがアクセス許可を持つフォルダーに保存します。
- 書き込みを試みる前に、
chown
コマンドを使用して、ディレクトリの所有権を変更します。
CircleCI では 1 番目のソリューションをおすすめします。 2 つ目のソリューションを使用する場合、MacOS と Linux の両方のビルドで、次のコマンドを使用できます。
chown -R $USER:$USER /path/to/directory
$USER
は、現在ログインしているユーザーを示すグローバル環境変数です。
/path/to/directory
は、書き込み先のパスに置き換えます。
コメント
記事コメントは受け付けていません。