У меня есть Dockerfile, который git клонирует проект, подобный следующему:
...
RUN git clone -b 027-infra http://201.57.129.38/arbitrium/api.git
...
Я хочу заменить 027-infra
(нужную ветвь проекта) переменной среды, но в соответствии с документамиhttps://docs.docker.com/engine/reference/builder/#environment-replacement кажется, что инструкция RUN не поддерживает переменные env.Понятия не имею, почему!
Как я могу клонировать проект, используя внешнюю переменную для выбора ветви?
Другая информация:
- Хранилище является открытым иОткрытый исходный код.Никаких проблем с ssh-ключами или чем-то еще.
- Я использую docker-compose с 3 сервисами, 2 из них git clone, 2 разных репозитория.В конце я хотел бы использовать одну переменную, чтобы обе службы извлекали одно и то же имя ветви, но в разных репозиториях.Вот почему я не могу использовать COPY, потому что это будет иметь контекст только для первого репозитория.
Обновление:
Не удалось заставить работать переменные env, ноЯ сделал с аргументами.Похоже, мне нужно было добавить вызов ARG, чтобы принять аргумент во время сборки контейнера:
...
ARG GIT_BRANCH
RUN git clone -b ${GIT_BRANCH} http://201.57.129.38/arbitrium/web.git
...
и вызвать сборку либо с docker-compose build
, либо как эти docker build --build-arg GIT_BRANCH=027-infra -t arbitrium_api:latest -f Dockerfile_api .
Stillне понимаю, почему переменные env не заменяются при запуске git clone.