Файл не существует при запуске контейнера, но существует при создании образа Docker - PullRequest
0 голосов
/ 16 мая 2019

Если я использую:

FROM jenkins/jenkins:lts
RUN ls -l /var/jenkins_home/; touch /var/jenkins_home/isthisworking; echo "================================"; ls -l /var/jenkins_home;

Я на самом деле вижу isthisworking в моей последней команде ls -l во время создания образа. После запуска контейнера этот файл удаляется. Зачем?

Ответы [ 2 ]

1 голос
/ 16 мая 2019
  1. Используйте 'USER jenkins', если вы хотите изменить ресурсы ssh для этого пользователя

  2. Вы пытаетесь обратиться к ip из сети, в которой ваш докер-контейнер не является частью. Ваш хост-компьютер в ваших докер-контейнерах - это две разбитые сети

0 голосов
/ 29 мая 2019

Мне кажется, я знаю, что происходит. Вот Dockerfile, который я использовал, чтобы выяснить, что происходит (скопировано сверху):

FROM jenkins/jenkins:lts
RUN ls -l /var/jenkins_home/; touch /var/jenkins_home/isthisworking; echo "================================"; ls -l /var/jenkins_home;

Как уже упоминалось, с этим файлом во время сборки я бы увидел файл isthisworking, но когда я запускаю контейнер, этого файла больше нет.

Итак, я зашел на страницу jenkins / jenkins: lts github и посмотрел их Dockerfile. Я видел это в строке 26:

# Jenkins home directory is a volume, so configuration and build history
# can be persisted and survive image upgrades
VOLUME $JENKINS_HOME

Здесь $JENKINS_HOME равно /var/jenkins_home/. Поэтому, как нуб Docker, я спросил себя, что такое VOLUME (я знаю, что это из командной строки, но не внутри Dockerfile)? При поиске в Google я нашел это и это , что в основном говорит:

Команда docker run инициализирует вновь созданный том любым данные, которые существуют в указанном месте в базовом изображении.

Так как это местоположение является ОБЪЕМОМ докера в этой точке в Dockerfile, независимо от того, что и как файлы копируются в него, во время выполнения контейнера это местоположение будет повторно инициализировано так, как его «определил» базовый образ.

Чтобы файл оставался при запуске контейнера, внесите изменения / дополнения в каталог, прежде чем сделать его ОБЪЕМОМ.

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