【发布时间】:2019-09-02 19:14:32
【问题描述】:
码头工人之前: 我曾经构建发布位并对其进行一组测试。这些位已从单元测试到 Comp、Functional、E2E 等进行了测试。
使用 docker: 1)我有一个 CI 管道来测试这些位,但是...... 2) 使用 Docker 文件,我同时构建并推送图像上的位。所以考虑到非确定性构建系统,这是有风险的。我有什么办法可以编写 Dockerfile 来解决这个问题,或者你的方法是什么?
我用作示例的 .net 核心的 Dockerfile:
COPY . .
COPY /service /src/service
RUN dotnet build "src/service/ConsoleApp1/ConsoleApp1.csproj" -c release -o /app
FROM build AS publish
RUN dotnet publish "src/service/ConsoleApp1/ConsoleApp1.csproj" -c release -o /app
WORKDIR /app
FROM runtime AS final
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "ConsoleApp1.dll"]
【问题讨论】:
-
你不应该在 docker 容器内构建。而是在 cicd(例如 jenkins)中构建工件(
.jar或.dll)并在容器内使用工件。 -
这就是我要找的东西,但我不知道该怎么做。任何帮助,将不胜感激。我现在正在为 cicd 使用 Azure DevOps。
标签: docker kubernetes .net-core docker-compose dockerfile