如何在Dockerfile中使用for循环?



我有一个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循环,只有一次COPYRUN?比如:

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指令,所以我建议你:

  1. 提供单个COPY指令,将所有文件复制到不同的子文件夹中。
  2. 编写和COPY一个shell脚本,循环遍历子文件夹编译它们。
  3. 为上述脚本提供单个RUN指令。

问候。

相关内容

  • 没有找到相关文章

最新更新