У меня есть несколько проектов, связанных с репозиториями Github, которые основаны на Docker Hub через Dockerfile
в каждом проекте. Эта схема работала нормально, но все мои сборки начали давать сбои 100% времени назад. Я пытался отследить это и понял, что на самом деле я ничего не делал , что-то , и проблема, с которой он не справляется, довольно проста c.
Я использую arch linux базовое изображение и копирование источника моего приложения в контейнер, используя что-то вроде:
COPY ./ /src
Затем я перехожу в этот каталог:
WORKDIR /src
Затем я попробуйте собрать программное обеспечение. Обычно это включает в себя запуск ./configure
, но это умирает со странной ошибкой, говорящей «Операция не разрешена». Оказывается, это не просто проблема для GNU Make, даже ls
не может прочитать каталог ! В частности, каталог, а не вещи внутри него. Я могу запустить RUN ls -l
и получить список файлов в источнике, который был скопирован, но я не могу запустить RUN ls -ld
, чтобы показать свойства каталога, он умирает так:
Step 17/28 : RUN ls -ald
---> Running in ec8f9f6c3604
ls: cannot access '.': Operation not permitted
Removing intermediate container ec8f9f6c3604
The command '/bin/sh -c ls -ald' returned a non-zero code: 2
I может выполнять различные другие команды, но все, что пытается посмотреть на сам каталог, умирает так. Я даже могу создавать файлы в каталоге.
Обратите внимание, эти же сборки Dockerfile
отлично работают на моей локальной системе, используя docker build
. Что дает? Чем отличается их построение на Docker Hub?