Вы можете добавить в Dockerfile аргумент:
ARG path
В задаче Azure DevOps Docker добавьте аргумент:
-task: Docker@2
inputs:
command: build
arguments: --build-arg path=$(Build.Repository.LocalPath)
Теперь Dockerfile знает значение переменной, и вы можетеиспользуйте его, например:
FROM ubuntu:latest
ARG path
ECHO $path
Результаты:
Step 3/13 : RUN echo $path
---> Running in 213dsa3dacv
/home/vsts/work/1/s
Но если вы попытаетесь скопировать приложение таким образом:
FROM microsoft/aspnet:latest
ARG path
COPY $path/README.md /inetpub/wwwroot
Вы будетеполучить сообщение об ошибке:
Ошибка копирования: CreateFile \? \ C: \ ProgramData \ docker \ tmp \ docker-builder437597591 \ _work \ 1 \ s \ README.md: системе не удается найти указанный путь.
Это потому, что Docker создает образ во временной папке и копирует туда исходные файлы, но не копирует папки агентов (_work / 1 / s), так что это лучший способпросто укажите относительный путь, где существует файл Docker, например (если файл Docker существует с README.md):
FROM microsoft/aspnet:latest
COPY README.md /inetpub/wwwroot