Я пытаюсь развернуть артефакт в удаленное репо 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
m2_username и
m2_password читаются из файла секретов в Дженкинсе и передаются в качестве переменной среды в докер во время выполнения. Они, кажется, правильно переданы в Docker, так как команды
echo в сценарии
build_target.sh правильно распечатать значения. Тем не менее, я получаю 401-контролированную, когда Мавен пытается развернуть в удаленном репо, как будто криэнты, где неправильно. И в этом случае все работает, я просто не могу передать их как переменные ENV.
Есть идеи?
Подробнее здесь:
https://stackoverflow.com/questions/794 ... -variables