运行docker-compose up
时出现此错误:
回溯(最近通话最近): 在“文件docker-compose”的第6行 main中的文件“ compose / cli / main.py”,第71行 perform_command中的文件“ compose / cli / main.py”,第127行 文件“ compose / cli / main.py”,行1085,向上 文件“ compose / cli / main.py”,行1081,向上 文件“ compose / project.py”,第527行,向上 确保“ image_exists”中的文件“ compose / service.py”,行360 在构建文件1084行中的文件“ compose / service.py” 在构建中的文件“ site-packages / docker / api / build.py”,第159行 tar中的第30行的文件“ site-packages / docker / utils / build.py” 文件“ site-packages / docker / utils / build.py”,第49行,在exclude_paths中 在rec_walk中的文件“ site-packages / docker / utils / build.py”,第214行 在rec_walk中的文件“ site-packages / docker / utils / build.py”,第214行 在rec_walk中的文件“ site-packages / docker / utils / build.py”,第214行 在rec_walk中,文件“ site-packages / docker / utils / build.py”,第184行 PermissionError:[Errno 13]权限被拒绝:'/ usr / sbin / authserver' [6560]无法执行脚本docker-compose
当我运行sudo docker-compose up
时,出现此错误:
回溯(最近通话最近): 在“文件docker-compose”的第6行 main中的文件“ compose / cli / main.py”,第71行 perform_command中的文件“ compose / cli / main.py”,第127行 文件“ compose / cli / main.py”,行1085,向上 文件“ compose / cli / main.py”,行1081,向上 文件“ compose / project.py”,第527行,向上 确保“ image_exists”中的文件“ compose / service.py”,行360 在构建文件1084行中的文件“ compose / service.py” 在构建中的文件“ site-packages / docker / api / build.py”,第159行 tar中的第30行的文件“ site-packages / docker / utils / build.py” 文件“ site-packages / docker / utils / build.py”,第49行,在exclude_paths中 在rec_walk中的文件“ site-packages / docker / utils / build.py”,第214行 在rec_walk中,文件“ site-packages / docker / utils / build.py”,第184行 PermissionError:[Errno 1]不允许的操作:'/.Spotlight-V100' [6717]无法执行脚本docker-compose
这是我的 docker-compose.yml
:
version: "3"
services:
about:
build: /
depends_on:
- "database"
ports:
- "3333:3333"
database:
image: mongo:latest
这是我的Dockerfile:
FROM node:latest
RUN mkdir -p /src/app
WORKDIR /src/app
COPY . /src/app
RUN npm install
RUN npm run seed
EXPOSE 3333
CMD ["node", "server/index.js"]
在创建映像并运行容器时,Dockerfile
可以正确运行。我真的很想让docker-compose
工作。如有必要,将包含更多代码。
答案 0 :(得分:0)
您的构建上下文引用系统的根/
,这就是为什么您被拒绝权限的原因。应该是相对的。尝试
version: "3"
services:
about:
build: ./
depends_on:
- "database"
ports:
- "3333:3333"
答案 1 :(得分:0)
对于诸如“权限被拒绝”之类的类似问题,它不仅与/有关,而且与./
有关docker在其“构建上下文”中发送所有文件,这就是您遇到这种情况的原因。正如docker文档中所述,@ adii是关于/的正确提示:
警告
请勿将您的根目录/用作PATH,因为它会导致构建将硬盘驱动器的全部内容传输到Docker守护程序。
但是要注意构建环境。我的一个与映像无关的文件夹也有类似的问题,我不明白为什么构建会抱怨。希望这个答案能帮助您理解:
上下文是递归处理的。因此,PATH包含所有子目录,URL包含存储库及其子模块。
不管哪个有ADD或COPY语句。因此,请将Dockerfile放在安全的地方,或确保.dockerignore排除不必要的文件和文件夹。
另外,请检查docker build documentation。