2017-12-08 10 views
0

を構築し、私はそのようdockerfile持って2段階でnugetキャッシュを取得できません:Gitlab CIと.NETのコア -

FROM microsoft/aspnetcore-build:2.0 AS build-env WORKDIR /app 

    # Copy csproj and restore as distinct layers 
COPY *.csproj ./ 
COPY *.config ./ 
RUN dotnet restore --configfile NuGet.config 
    # Copy everything else and build 
COPY . ./ RUN dotnet publish -c Release -o out 

# Build runtime image 
FROM microsoft/aspnetcore:2.0 
WORKDIR /app 
COPY --from=build-env /app/out . 
ENV ASPNETCORE_URLS http://+:5000 
ENTRYPOINT ["dotnet", "AuthService.dll"] 

私が構築Gitlab上で、そのために取得することはできません。

全体Nugetキャッシュは~/.nuget/packagesbuild-envに座っているが、Gitlabは何とか(私はそれが唯一の最後のコンテナをチェックするとしているが表示されません。

それを解決するためにどのように任意のアイデア?それは作っているので、無NuGetの限りのビルドドッキングウィンドウコンテナ内Gitlab CIを使用しながら、キャッシュ...

+0

役に立てば幸い? '〜/ .nuget'と' .nuget'を試してみましたが、どちらも失敗しました。 – Nordes

答えて

0

私の問題だった。答えはあなたが期待するものとは少し異なる場合がありますので。

問題があった場所、私が見つけた多くのことをしようとすること。 Gitlab CIは.nugetフォルダをユーザーの~/(ホーム)ディレクトリ。しかし、あなたがあなたのCIを起動するとき、あなたが始めるフォルダは~/フォルダではなく、.nugetが見つかりません。それは.gitlab-ci.ymlに動作させるために、私は次のことを行っている:

# Some stuff before 
build-dotnet: 
    image: microsoft/dotnet:2.0-sdk-jessie 
    stage: build 
    cache: 
    paths: 
     - nuget 

    script: 
    - (if [ -d ./nuget ]; then mv nuget ~/.nuget; else echo "No nuget cache available"; fi); # Fail on first attempt, but will work after. 
    - # etc. 
    - mv ~/.nuget nuget 
# Some stuff after 

私はそれを入れていた場所を知りましたそれは