我想在主機上的當前目錄中創建一個新的 nextjs 應用程式,但不安裝節點等。所以我運行這樣的容器
docker run --rm -it -v $(pwd):/app node:17.8.0 bash
whoami表明我是容器中的根。然后我在容器中運行這些命令
cd /app
npx create-next-app@latest
并得到這個輸出
Need to install the following packages:
create-next-app@latest
Ok to proceed? (y) y
sh: 1: create-next-app: Permission denied
npm notice
npm notice New minor version of npm available! 8.5.5 -> 8.6.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.6.0
npm notice Run npm install -g [email protected] to update!
npm notice
我不明白為什么我的權限被拒絕,因為我是 root。
它與主機目錄的卷映射有關,因為如果我在沒有卷映射的情況下運行容器,則該命令有效。
主機目錄中的權限如下所示
drwxrwxr-x 2 hans hans 4096 Apr 9 10:35 .
drwxrwxr-x 11 hans hans 4096 Apr 9 10:21 ..
為什么它會失敗,我怎樣才能讓它作業?
uj5u.com熱心網友回復:
我的建議是立即使用正確的 UID/GID 運行容器,這樣您以后就不必修復權限。這也可能解決最初的問題。
docker run -u "$(id -u):$(id -g)" ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457924.html
