我正在为 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