Дженкинс – Сборка Docker Не Собирает Встроенный Jar?

  • Автор темы Vitamak
  • Обновлено
  • 22, Oct 2024
  • #1

Я новичок в мире DevOps, но пытаюсь построить конвейер с помощью Jenkins и Docker.

У меня есть Дженкинс, создающий образ докера:

 
 FROM ~~container_on_private_registry~~
USER root
WORKDIR /root
ARG jenkins_jar_file
RUN mkdir -p /root/app/app.jar
COPY ${jenkins_jar_file} /root/app/app.jar
ENTRYPOINT ["java", "-jar", "/root/app/app.jar"]
 

Где JENKINS_JAR_FILE — это переменная, указывающая на файл jar, созданный Jenkins.

Это мой Dockerfile:

docker build -f Dockerfile --build-arg jenkins_jar_file=${JENKINS_JAR_FILE} -t ${DOCKER_IMAGE} .

Однако мне кажется, что образ создается с использованием неправильного JAR-файла?

Я запускаю образы докера и вижу свое изображение, но там написано «Создано 4 дня назад».

Я вижу то же самое, когда запускаю историю образов докеров для шага точки входа.

Когда я на самом деле пытаюсь запустить образ для контейнера, он по какой-то странной причине пытается запустить банку, которой нет в образе. Вместо этого он возвращает следующую ошибку:

Vitamak


Рег
22 Sep, 2011

Тем
66

Постов
192

Баллов
542
  • 25, Oct 2024
  • #2

Мне кажется, ваш Dockerfile должен выглядеть так:

 FROM ~~container_on_private_registry~~
USER root
WORKDIR /root
ARG jenkins_jar_file=jenkins.jar
ENV jenkins_jar_file ${jenkins_jar_file}
RUN mkdir -p /root/app
COPY ${jenkins_jar_file} /root/app/app.jar
ENTRYPOINT ["java", "-jar", "/root/app/app.jar"]
 

Объяснение:

Мы сообщаем Dockerfile, чтобы Docker знал, что он ожидает, что во время сборки ему будет передана переменная с именем jenkins_jar_file. Последующие строки могут ссылаться на эту переменную в долларовом эквиваленте.

Также при создании образа используйте --no-cache, чтобы заново построить все слои изображения.

 

Irma2


Рег
18 Dec, 2007

Тем
66

Постов
179

Баллов
549
  • 25, Oct 2024
  • #3

Вы можете добавить еще один шаг перед запуском сборки и перечислить банки, чтобы убедиться, что это правильные банки, затем скопировать их в место, где находится ваш Dockerfile, и запустить сборку.

 

Myniceworld


Рег
13 Apr, 2006

Тем
71

Постов
196

Баллов
551
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно