Ошибка Docker-compose при попытке запуска
У меня странная ошибка, когда я пытаюсь запустить docker-compose. Я переустанавливал виртуальную машину несколько раз, все обновлялось и устанавливалось, но я не могу запустить compose.
$ 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 для mysql:
FROM mysql:5.7
COPY ./my.cnf /etc/mysql/conf.d/
1 ответ
docker build
Команда build может завершиться с ошибкой разрешения, если в каталоге контекста сборки есть файлы (или папки), которые не принадлежат текущему пользователю.
Такая ситуация возникает, когда вы монтируете том в каталог хоста; файлы в этом каталоге могут принадлежать пользователю root.
Исправить это довольно просто: просто создайте .dockerignore
файл с именем каталогов / файлов, которые вам не принадлежат и не требуются в сборке образа докера.
Например:
docker run -d -v $(pwd)/data-volume:/var/lib/mysql mysql
создаст data-volume
каталог.
Если бы вы собирали Dockerfile, у вас было бы следующее содержимое в вашем .dockerignore
:
data-volume