我想创建一个uploads卷并将其所有者设置为node用户。但在运行容器时,我发现该卷的所有者是root. 这是我的 Docker 文件:
FROM node:12.21
RUN apt-get update && apt-get -y install curl vim bash nano
WORKDIR /home/node/app
COPY package.json .
COPY yarn.lock .
RUN mkdir ./uploads
RUN chown -R node:node .
USER node
RUN yarn install
COPY --chown=node:node . .
VOLUME /home/node/app/uploads
Run Code Online (Sandbox Code Playgroud)
我用docker-compose buildthendocker-compose up来构建和运行;我的docker-compose.yml还包含音量指令:
services:
...
server:
...
volumes:
- ./uploads:/home/node/app/uploads
Run Code Online (Sandbox Code Playgroud)
我的测试表明,这条指令docker-compose.yml是导致问题的原因——没有它,uploads目录所有者被正确设置为node——但我不明白为什么。在这种情况下,指令是否docker-compose.yml多余?如果我想将卷映射到本地目录(我认为这条指令是必要的)怎么样?