Ошибка 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
Другие вопросы по тегам