.m2/settings.xml в контейнере Docker не чтение переменных ENVJAVA

Программисты JAVA общаются здесь
Anonymous
 .m2/settings.xml в контейнере Docker не чтение переменных ENV

Сообщение Anonymous »

Я пытаюсь развернуть артефакт в удаленное репо Maven из контейнера Docker. В рамках нашего конвейера CI/CD, у меня есть работа Jenkins, управляющий сценарием, который создает изображение Docker с Maven. Внутри докера .JAR построен, а затем должен подтолкнуть к удаленному хранилищу Maven. < /P>
Вот сценарий: < /p>

Код: Выделить всё

#!/bin/bash

docker build  -t java-maven-builder .

docker run --rm -v "$PWD/target:/app/out/target" \
-e M2_USERNAME=$M2_USERNAME \
-e M2_PASSWORD=$M2_PASSWORD \
java-maven-builder
< /code>
dockerfile: < /p>
FROM maven:3.9.6

USER root

WORKDIR /app

COPY . /app

COPY settings.xml /root/.m2/settings.xml

RUN chmod +x /app/build_target.sh

ENTRYPOINT ["./build_target.sh"]
< /code>
и скрипт build_target: < /p>
#!/bin/bash
echo "M2_USERNAME: $M2_USERNAME"
echo "M2_PASSWORD: $M2_PASSWORD"

mvn -X clean package verify deploy

cp -r /app/target/* /app/out/target
Наконец, вот futs.xml file

Код: Выделить всё



snapshots
${env.M2_USERNAME}
${env.M2_PASSWORD}



m2_username и m2_password читаются из файла секретов в Дженкинсе и передаются в качестве переменной среды в докер во время выполнения. Они, кажется, правильно переданы в Docker, так как команды echo в сценарии build_target.sh правильно распечатать значения. Тем не менее, я получаю 401-контролированную, когда Мавен пытается развернуть в удаленном репо, как будто криэнты, где неправильно. И в этом случае все работает, я просто не могу передать их как переменные ENV.
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/794 ... -variables

Вернуться в «JAVA»