当我尝试运行docker-compose时,我遇到了一个有趣的错误。我已经多次重新安装VM,所有内容都更新并安装但我无法运行撰写。
$ sudo docker-compose up -d
Creating network "apache2_default" with the default driver
Building mysql
ERROR: Error processing tar file(exit status 1): permission denied
我的docker-composer.yml文件:
version: '2'
services:
mysql:
build: ./mysql
environment:
MYSQL_ROOT_PASSWORD: pass
volumes:
- db:/var/lib/mysql
php:
build: ./php
ports:
- '80:80'
volumes:
- ./html:/var/www/html
depends_on:
- mysql
volumes:
db:
我在Mac上运行它并且可以正常运行
编辑:
Dockerfile fot mysql:
FROM mysql:5.7
COPY ./my.cnf /etc/mysql/conf.d/
答案 0 :(得分:0)
当构建上下文目录中存在不属于当前用户的文件(或文件夹)时,docker build
构建命令可能会因权限错误而失败。
将卷装入主机目录时会发生这种情况;该目录中的文件可能由root拥有。
修复非常简单:只需创建一个.dockerignore
文件,其中包含您不拥有的目录/文件的名称,并且在docker映像构建中不需要。
例如:
docker run -d -v $(pwd)/data-volume:/var/lib/mysql mysql
会创建一个data-volume
目录。
如果您要构建Dockerfile,则.dockerignore
中会有以下内容:
data-volume