7

我正在为 Docker 容器创建一个入口点,然后尝试使用docker-compose.yml文件运行它。 这在 Ubuntu 和 OS X 中运行良好,但在 Windows 中出现权限错误(没有太多额外信息)

这是 Dockerfile:

FROM node:6.9

MAINTAINER Some Dude <dude@dude.com>

WORKDIR /opt

# Install Compass
RUN DEBIAN_FRONTEND=noninteractive apt-get -y dist-upgrade
RUN apt-get -y update
RUN apt-get -y install gcc rubygems ruby-dev
RUN gem update --system
RUN gem install compass

# Install Compass Extensions
RUN gem install compass-blend-modes compass-import-once

# Install glup globally
RUN npm install -g gulp

# Copy the setup file
COPY setup/gulp/docker-gulp-setup.sh /usr/local/bin/docker-gulp-setup.sh
RUN chmod +x /usr/local/bin/docker-gulp-setup.sh

CMD ['gulp']

这是 docker-compose.yml 条目:

version: '2'

services:

        mycontainer-for-gulp:
                build:
                        context: .
                        dockerfile: Dockerfile.gulp
                volumes:
                        - ./:/opt:Z
                command: /usr/local/bin/docker-gulp-setup.sh

以下是在 Windows 上运行 build 命令时的输出:

λ docker-compose build mycontainer-for-gulp
Building mycontainer-for-gulp
Traceback (most recent call last):
 File "<string>", line 3, in <module>
 File "compose\cli\main.py", line 65, in main
 File "compose\cli\main.py", line 117, in perform_command
 File "compose\cli\main.py", line 223, in build
 File "compose\project.py", line 300, in build
 File "compose\service.py", line 742, in build
 File "site-packages\docker\api\build.py", line 55, in build
 File "site-packages\docker\utils\utils.py", line 95, in tar
 File "tarfile.py", line 2023, in add
 File "tarfile.py", line 2052, in addfile
 File "tarfile.py", line 278, in copyfileobj
IOError: [Errno 13] Permission denied
docker-compose returned -1

请注意,它是COPY产生错误的命令,因为我们尝试单独注释掉它和RUN chmod语句。

当我运行原始 docker build 查询时:

docker build -f Dockerfile.gulp .

然后我得到一堆错误输出,因为它试图压缩当前目录。基本上每个文件添加都会失败。完整输出在这里:

https://gist.github.com/danieltalsky/4cb6bddb6534c46b051230bc45578072

4

2 回答 2

2

当应用程序仍在 IDE 中运行时尝试构建 Docker 映像时,我遇到了同样的问题。

确保在构建映像之前关闭您的应用程序

于 2020-11-19T20:08:45.163 回答
0

在 PyCharm 中工作时,我已将子文件夹设置为“源根”(右键单击文件夹名称 > 将目录标记为 > 源根)。当我将子文件夹作为源根目录删除时,此错误消失了

于 2021-02-23T08:31:13.243 回答