Нечувствительность между Docker и Heroku - PullRequest
0 голосов
/ 29 апреля 2020

Я заметил некоторое несоответствие при попытке добавить sh в моем приложении Docker к Heroku.

Когда я удаляю файл изнутри Docker, используя RUN rm внутри Dockerfile, файл эффективно удаляется, когда я собираю образ и запускаю его локально, как объяснено в Реестр контейнеров и время выполнения (Docker Развертывание) Это также, если я строю образ локально, тогда pu sh Реестр контейнеров. Но если у меня есть Docker изображений, построенных на Heroku в соответствии с Building Docker Изображениями с документацией heroku.yml , файл не отображается во время сборки с помощью RUN ls, но возвращается во время выполнения вместе с копией с префиксом .wh.

Обходной путь довольно прост, я могу удалить файлы во время выполнения, используя скрипт как ENTRYPOINT, но я все еще удивлен. Я что-то пропустил? Если это действительно ошибка, куда я должен сообщить об этом, учитывая, что я новичок в Heroku и все еще использую только бесплатные сервисы платформы.

Вот минимальный пример, который я создал, чтобы разрешить воспроизведение, 2-й ls отображает internal_file.txt и .wh.internal_file.txt, которые, как ожидается, не будут присутствовать. http.server также показывает их. Он работает так же, используя ENTRYPOINT, а также с файлами, добавленными во время COPY.

Dockerfile

FROM python:latest
WORKDIR /app
COPY ./ /app

RUN touch internal_file.txt
RUN rm *.txt # to delete internal_file.txt and other .txt files added by copy
RUN ls -l -a

EXPOSE $PORT
CMD ls -l -a & python -m http.server $PORT

heroku.yml

build:
  docker:
    web: Dockerfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...