我有一个Dockerfile与4倍相同的指令,只有文件名改变:
COPY ./MyProject.Common/MyProject.Common.csproj /app/MyProject.Common/
RUN dotnet restore /app/MyProject.Common/MyProject.Common.csproj
COPY ./MyProject.Manual/MyProject.Manual.csproj /app/MyProject.Manual/
RUN dotnet restore /app/MyProject.Manual/MyProject.Manual.csproj
COPY ./MyProject.Widgets/MyProject.Widgets.csproj /app/MyProject.Widgets/
RUN dotnet restore /app/MyProject.Widgets/MyProject.Widgets.csproj
COPY ./${CLIENT_PROJECT}/${CLIENT_PROJECT}.csproj /app/${CLIENT_PROJECT}/
RUN dotnet restore /app/${CLIENT_PROJECT}/${CLIENT_PROJECT}.csproj
是否有可能使用for循环,只有一次COPY
和RUN
?比如:
FOR [MyProject.Common, MyProject.Manual, ${CLIENT_PROJECT}]
COPY ./${FOR_PARAM}/${FOR_PARAM}.csproj /app/${FOR_PARAM}/
RUN dotnet restore /app/${FOR_PARAM}/${FOR_PARAM}.csproj
ENDFOR
谢谢!:)
docker文件中没有FOR/LOOP
指令,所以我建议你:
- 提供单个
COPY
指令,将所有文件复制到不同的子文件夹中。 - 编写和
COPY
一个shell脚本,循环遍历子文件夹编译它们。 - 为上述脚本提供单个
RUN
指令。
问候。