Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't create docker image for dotnet web api project #610

Closed
Omrisha opened this issue Oct 12, 2022 · 34 comments
Closed

Can't create docker image for dotnet web api project #610

Omrisha opened this issue Oct 12, 2022 · 34 comments
Assignees
Labels
bug Something isn't working question Have you tried our Slack workspace (https://testcontainers.slack.com)?
Milestone

Comments

@Omrisha
Copy link

Omrisha commented Oct 12, 2022

Describe the bug
I have Web API .NET 6 project with docker file in it, when I try creating docker file using ImageFromDockerFileBuilder it failed with not incomprehensible probelm:
"System.AggregateException: 'One or more errors occurred. (Docker image verte.authorizationserver.webapiapplication:1665577986 has not been created.)'"

It's does not give more errors so I can't know what is wrong.

To Reproduce
Steps to reproduce the behavior:

  1. I created a function with the parameters of the Image dockerfile builder as follow:
    IDockerImage image = await new ImageFromDockerfileBuilder() .WithName(this) .WithDockerfileDirectory("C:\\Repos\\verte.Microservices\\Applications\\AuthorizationServer\\Application\\Verte.AuthorizationServer.WebApiApplication") .WithDockerfile("Dockerfile") .WithBuildArgument("RESOURCE_REAPER_SESSION_ID", ResourceReaper.DefaultSessionId.ToString("D")) .WithDeleteIfExists(false) .Build() .ConfigureAwait(false);
  2. Build
  3. Run the test
  4. See error

Expected behavior
Dockerfile should be created, also my dockerfile is working just fine with docker compose and docker CLI.

Screenshots
image

@HofmeisterAn
Copy link
Collaborator

Your Docker image build fails. Run the Docker build via CLI, and check your Dockerfile configuration.

@HofmeisterAn HofmeisterAn added the question Have you tried our Slack workspace (https://testcontainers.slack.com)? label Oct 12, 2022
@Omrisha
Copy link
Author

Omrisha commented Oct 12, 2022

@HofmeisterAn my dockerfile is generated from visual studio 2022, if I'm running docker build with -f flag and specifiy Dockerfile it works, there's a way your package can work with it?

@HofmeisterAn
Copy link
Collaborator

What's your Dockerfile path?

@Omrisha
Copy link
Author

Omrisha commented Oct 12, 2022

In the root folder of the project

@Omrisha
Copy link
Author

Omrisha commented Oct 12, 2022

@HofmeisterAn Okay so the problem is that You need to specify the solution path in the build, can I do this with ImageFromDockerfileBuilder?

@HofmeisterAn
Copy link
Collaborator

HofmeisterAn commented Oct 12, 2022

Okay so the problem is that You need to specify the solution path in the build, can I do this with ImageFromDockerfileBuilder?

You need to set the path to the directory that contains the Dockerfile. All paths inside the Dockerfile are relative to this path. You can pass ARGs to the Docker image build via WithBuildArgument.

@Omrisha
Copy link
Author

Omrisha commented Oct 13, 2022

@HofmeisterAn there's a way to execute the following docker build command with ImageFromDockerfileBuilder:
docker build -f C:\Repos\Microservices\Applications\AuthorizationServer\Application\WebApiApplication\Dockerfile -t "authorizationserver.webapiapplication" "C:\Repos\Microservices"

@HofmeisterAn
Copy link
Collaborator

_ = new ImageFromDockerfileBuilder()
  .WithName("authorizationserver.webapiapplication")
  .WithDockerfileDirectory("C:/Repos/Microservices/Applications/AuthorizationServer/Application/WebApiApplication")
  .Build();

This will create a tarball of the content of C:\Repos\Microservices\Applications\AuthorizationServer\Application\WebApiApplication. If your Dockerfile requires files from the directory tree above (like C:\Repos\Microservices) move the Dockerfile upwards to that directory.

@UnstoppableMango
Copy link

I currently have the same problem. After quite a bit of debugging, I found that trailing /s in .dockerignore cause all files to get ignored. Docker doesn't care, but the ignore logic in this lib will turn them into regex's that match all files, and thus ignore all files. For example, **/bin/ vs **/bin. Something to check at the very least.

For me, after fixing that it still fails to build the image. Does WithDockerfileDirectory correspond to the build context? Should WithDockerfile be relative to the path given in WithDockerfileDirectory?

In my case, my Dockerfile lives at myrepo/src/common/dotnet/Dockerfile
And the build context is expected to be myrepo/src
To build the image, I'm using

await new ImageFromDockerfileBuilder()
    .WithName(BaseImage)
    .WithDockerfile(Path.Combine("common", "dotnet", "Dockerfile"))
    .WithDockerfileDirectory(CommonDirectoryPath.GetGitDirectory(), "src")
    .Build()

I feel like this issue would be pretty easy to solve if there was any inkling of an error message. I tried debugging into the internal Docker.Dotnet calls to see if I could pull anything from the log steam it seems to be using, but either my debugging skills are lacking or there's nothing there.

I also tried setting up an XUnit ITestOutputHelper and passing that to Testcontainers, but since the error seems to be happening with Docker.Dotnet that didn't lead to much.

@HofmeisterAn
Copy link
Collaborator

HofmeisterAn commented Oct 17, 2022

I found that trailing /s in .dockerignore cause all files to get ignored.

That is fixed with #604.

In my case, my Dockerfile lives at myrepo/src/common/dotnet/Dockerfile
And the build context is expected to be myrepo/src

Testcontainters for .NET creates a tarball of the content of WithDockerfileDirectory and passes the tarball to Docker. This tarball is the "new" root of the Dockerfile and must contain all files, etc.

1665986815

Your configuration above looks good. The Dockerfile is inside the WithDockerfileDirectory directory tree. Does it still not work?

I feel like this issue would be pretty easy to solve if there was any inkling of an error message.

Docker.Dotnet does not forward the error. The issue has been fixed recently with dotnet/Docker.DotNet#590, but there is no new release yet. But I agree, we need to improve the developer experience here, it looks like the current implementation or behavior is too complicated.

Does that help?

@HofmeisterAn
Copy link
Collaborator

@Omrisha have you been able to solve the issue? Do you need more help?

@UnstoppableMango
Copy link

I was able to figure out how to get logs from Docker.Dotnet, no idea why it wasn't working before but the internal StreamUtil.MonitorStreamForMessagesAsync does in fact report progress to the IProgress<JSONMessage> is is given. In my case the issue turned out to be a file not making it into the tar that needs to be there. I'll drill into why that's happening. The docker build works fine via the CLI, so idk if it's another ignorefile issue or something else.

Nice to see there may be better error messages coming in the future. I only skimmed the logging code, but at least at a high level it seems to be all wired up via the TraceProgress(logger) to get all messages. I'm not sure why it's not making it to a more accessible location. I just did a quick and dirty logging wrapper for the xunit output helper, it must be something there.

@Omrisha Not sure if this will help you but this is the loop I stepped through to find the issue in Docker.Dotnet.Models.StreamUtil
image

@UnstoppableMango
Copy link

Alright best I can tell, my .yarn/* entry in my dockerfile was getting turned into the pattern ^([\\\/]?(([^\\\/]+)?$\b|$)) which matched Directory.Packages.props. Switched it to .yarn and all is well.

The logging was because I wasn't setting the logger early enough in the process. I was building the image in a fixture, but trying to use ITestOutputHelper which doesn't seem like you can get access to in fixtures.

@HofmeisterAn
Copy link
Collaborator

HofmeisterAn commented Oct 19, 2022

In my case the issue turned out to be a file not making it into the tar that needs to be there.

That is usually the case. If I have issues I look straight into the tarball. OC, that is not convenient. What about adding the logger to DockerfileArchive:

foreach (var file in GetFiles(this.dockerfileDirectory.FullName))
{
// SharpZipLib drops the root path: https://github.com/icsharpcode/SharpZipLib/pull/582.
var relativePath = file.Substring(this.dockerfileDirectory.FullName.Length + 1);
if (dockerIgnoreFile.Denies(relativePath))
{
continue;
}
var tarEntry = TarEntry.CreateEntryFromFile(file);
tarEntry.Name = relativePath;
tarArchive.WriteEntry(tarEntry, true);
}

Alright best I can tell, my .yarn/* entry in my dockerfile was getting turned into the pattern ^([\\\/]?(([^\\\/]+)?$\b|$)) which matched Directory.Packages.props. Switched it to .yarn and all is well.

Indeed, that looks wrong, it is similar to #604. The string.Split messes it up again:

lines.AddRange(key
.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries)
.Skip(1)
.Prepend(key)
.Select(ignorePattern => new KeyValuePair<string, bool>(ignorePattern, value)));

It generates an ignore pattern for [.yarn/*, False] and [*, False] (the second one is wrong). These patterns are covered by tests.

@HofmeisterAn HofmeisterAn added the bug Something isn't working label Oct 19, 2022
@Omrisha
Copy link
Author

Omrisha commented Oct 19, 2022

@HofmeisterAn I still can't build docker image with your library, I have multiple project in the solution so i can't have my docker file in the solution folder.
I need a way to execute the following command:
docker build -f C:\Repos\Microservices\Applications\AuthorizationServer\Application\WebApiApplication\Dockerfile -t "authorizationserver.webapiapplication" "C:\Repos\Microservices"

@HofmeisterAn
Copy link
Collaborator

I have multiple project in the solution so i can't have my docker file in the solution folder.

You do it already with docker build, because you are changing the context. Moving the Dockerfile upwards does the same.

@miaw7
Copy link

miaw7 commented Nov 1, 2022

Got pretty the same problem

Can't build docker image from the docker file

_ = await new ImageFromDockerfileBuilder()
                    .WithName(this)
                    .WithDockerfileDirectory(CommonDirectoryPath.GetSolutionDirectory(), string.Empty)
                    .WithDockerfile("Dockerfile")
                    .WithBuildArgument("RESOURCE_REAPER_SESSION_ID", ResourceReaper.DefaultSessionId.ToString("D"))
                    .WithDeleteIfExists(false)
                    .Build();

Using the code from your repo example

Dockerfile lives in the solution folder

image

@HofmeisterAn
Copy link
Collaborator

HofmeisterAn commented Nov 1, 2022

Usually, the Docker build fails. You can attach a logger, then you will see which part fails (it will contain the Docker build output). Something like will do it:

static WeatherForecastImage()
{
  TestcontainersSettings.Logger = new MyLogger();
}

public sealed class MyLogger : ILogger, IDisposable
{
  public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter)
  {
    File.AppendAllText("diagnostic.log", formatter.Invoke(state, exception));
  }

  public bool IsEnabled(LogLevel logLevel)
  {
    return true;
  }

  public IDisposable BeginScope<TState>(TState state)
  {
    return this;
  }

  public void Dispose()
  {
  }
}

@miaw7
Copy link

miaw7 commented Nov 1, 2022

@HofmeisterAn thanks for the answer. I tried to copy dockerignore file from your weather src. Looks like it changed the error. Don't know what exactly in my dockerignore makes the logic fail. Will investigate new error more, thanks

@0nary
Copy link

0nary commented Nov 2, 2022

In my case, my Dockerfile lives at myrepo/src/common/dotnet/Dockerfile
And the build context is expected to be myrepo/src

Testcontainters for .NET creates a tarball of the content of WithDockerfileDirectory and passes the tarball to Docker. This tarball is the "new" root of the Dockerfile and must contain all files, etc.

I read the doc and didn't understand from it that WithDockerfileDirectory must refer the build context, then WithDockerfile must refer the Dockerfile with full path from the root of the build context. Maybe it's a good idea to make it explicit in the doc.

@HofmeisterAn
Copy link
Collaborator

Hm, I do not know how to explain it more explicit. If you look into the example, the build context (WithDockerfileDirectory) is: /testcontainers-dotnet/examples/WeatherForecast/. This directory path contains the Dockerfile and all dependencies to build the image. All paths inside the Dockerfile are relative to the build context (WithDockerfileDirectory), e.g.:

ARG CSPROJ_FILE_PATH="src/WeatherForecast/WeatherForecast.csproj"

@0nary
Copy link

0nary commented Nov 2, 2022

I'm trying to use the dockerfile create by visualstudio located at .\src\WeatherForecast\Dockerfile and all utile file are in src.

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["src/WeatherForecast/WeatherForecast.csproj", "src/WeatherForecast/"]
COPY ["src/WeatherForecast.Contexts/WeatherForecast.Contexts.csproj", "src/WeatherForecast.Contexts/"]
COPY ["src/WeatherForecast.Repositories/WeatherForecast.Repositories.csproj", "src/WeatherForecast.Repositories/"]
COPY ["src/WeatherForecast.Entities/WeatherForecast.Entities.csproj", "src/WeatherForecast.Entities/"]
COPY ["src/WeatherForecast.Interactors/WeatherForecast.Interactors.csproj", "src/WeatherForecast.Interactors/"]
RUN dotnet restore "src/WeatherForecast/WeatherForecast.csproj"
COPY . .
WORKDIR "/src/src/WeatherForecast"
RUN dotnet build "WeatherForecast.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WeatherForecast.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WeatherForecast.dll"]

So what param must I use, I thinks a made mistake here.

@HofmeisterAn
Copy link
Collaborator

HofmeisterAn commented Nov 2, 2022

C:.
│
└───GitHub-Issue-610
    └───src
            foo.txt
            WeatherForecastDockerfile

Builder configuration

_ = new ImageFromDockerfileBuilder()
  .WithDockerfileDirectory("C:/GitHub-Issue-610")
  .WithDockerfile("src/WeatherForecastDockerfile")
  .Build();

WeatherForecastDockerfile

FROM alpine:3.14
COPY src/foo.txt /tmp/

@0nary
Copy link

0nary commented Nov 2, 2022

I made a little typo mistake .\src\WeatherForecastDockerfile => .\src\WeatherForecast\Dockerfile
So your reponse should be : ?

C:.
│
└───GitHub-Issue-610
    └───src
         │  foo.txt
         └───WeatherForecast
             └───  Dockerfile
          
        

Builder configuration

_ = new ImageFromDockerfileBuilder()
  .WithDockerfileDirectory("C:/Users/andre.hofmeister/Desktop/GitHub-Issue-610")
  .WithDockerfile("src/WeatherForecast/Dockerfile")
  .Build();

WeatherForecastDockerfile

FROM alpine:3.14
COPY src/foo.txt /tmp/

@HofmeisterAn
Copy link
Collaborator

I made a little typo mistake .\src\WeatherForecastDockerfile => .\src\WeatherForecast\Dockerfile
So your reponse should be : ?

Yes: GitHub-Issue-610.zip.

HofmeisterAn added a commit that referenced this issue Nov 2, 2022
…se, it cuts the first character of the relative path)
@0nary
Copy link

0nary commented Nov 2, 2022

With what you give me, I get this error :
{"Docker image testcontainers:1667389550766 has not been created."}

@HofmeisterAn
Copy link
Collaborator

Then you are doing something wrong. Attach a logger or debug into it.

@0nary
Copy link

0nary commented Nov 2, 2022

I use the your example a little reworked for it to be stand alone.
I make my repos public, the master is the example with no modification (except for it to be stand alone), and the branch dockerfile-in-weatherforcast-project-folder is my goal (except currently i use your suggestion).
I expect the test Get_WeatherForecast_ReturnsSevenDays will run propely with the docker file I post previously.

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["src/WeatherForecast/WeatherForecast.csproj", "src/WeatherForecast/"]
COPY ["src/WeatherForecast.Contexts/WeatherForecast.Contexts.csproj", "src/WeatherForecast.Contexts/"]
COPY ["src/WeatherForecast.Repositories/WeatherForecast.Repositories.csproj", "src/WeatherForecast.Repositories/"]
COPY ["src/WeatherForecast.Entities/WeatherForecast.Entities.csproj", "src/WeatherForecast.Entities/"]
COPY ["src/WeatherForecast.Interactors/WeatherForecast.Interactors.csproj", "src/WeatherForecast.Interactors/"]
RUN dotnet restore "src/WeatherForecast/WeatherForecast.csproj"
COPY . .
WORKDIR "/src/src/WeatherForecast"
RUN dotnet build "WeatherForecast.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WeatherForecast.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "WeatherForecast.dll"]

@HofmeisterAn
Copy link
Collaborator

Use forward slashes. We will normalize the path in the next version automatically. The following diff runs on my machine:

diff --git a/src/WeatherForecast/Dockerfile b/src/WeatherForecast/Dockerfile
index c8e80ff..733edf1 100644
--- a/src/WeatherForecast/Dockerfile
+++ b/src/WeatherForecast/Dockerfile
@@ -1,2 +1,26 @@
-FROM alpine:3.14
-COPY src/foo.txt /tmp/
+#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
+
+FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
+WORKDIR /app
+EXPOSE 80
+EXPOSE 443
+
+FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
+WORKDIR /src
+COPY ["src/WeatherForecast/WeatherForecast.csproj", "src/WeatherForecast/"]
+COPY ["src/WeatherForecast.Contexts/WeatherForecast.Contexts.csproj", "src/WeatherForecast.Contexts/"]
+COPY ["src/WeatherForecast.Repositories/WeatherForecast.Repositories.csproj", "src/WeatherForecast.Repositories/"]
+COPY ["src/WeatherForecast.Entities/WeatherForecast.Entities.csproj", "src/WeatherForecast.Entities/"]
+COPY ["src/WeatherForecast.Interactors/WeatherForecast.Interactors.csproj", "src/WeatherForecast.Interactors/"]
+RUN dotnet restore "src/WeatherForecast/WeatherForecast.csproj"
+COPY . .
+WORKDIR "/src/src/WeatherForecast"
+RUN dotnet build "WeatherForecast.csproj" -c Release -o /app/build
+
+FROM build AS publish
+RUN dotnet publish "WeatherForecast.csproj" -c Release -o /app/publish /p:UseAppHost=false
+
+FROM base AS final
+WORKDIR /app
+COPY --from=publish /app/publish .
+ENTRYPOINT ["dotnet", "WeatherForecast.dll"]
diff --git a/tests/WeatherForecast.Test/WeatherForecastImage.cs b/tests/WeatherForecast.Test/WeatherForecastImage.cs
index 103f8d7..c2676fa 100644
--- a/tests/WeatherForecast.Test/WeatherForecastImage.cs
+++ b/tests/WeatherForecast.Test/WeatherForecastImage.cs
@@ -32,7 +32,7 @@ public sealed class WeatherForecastImage : IDockerImage, IAsyncLifetime
       _ = await new ImageFromDockerfileBuilder()
         .WithName(this)
         .WithDockerfileDirectory(CommonDirectoryPath.GetSolutionDirectory(), string.Empty)
-        .WithDockerfile("src\\WeatherForecast\\Dockerfile")
+        .WithDockerfile("src/WeatherForecast/Dockerfile")
         .WithBuildArgument("RESOURCE_REAPER_SESSION_ID", ResourceReaper.DefaultSessionId.ToString("D")) // https://github.com/testcontainers/testcontainers-dotnet/issues/602.
         .WithDeleteIfExists(false)
         .Build()

@0nary
Copy link

0nary commented Nov 2, 2022

I have effectively not may enough attention on the path you give me, my mistake.
Thank you.

HofmeisterAn added a commit that referenced this issue Nov 2, 2022
…se, it cuts the first character of the relative path), Normalize paths to forward slashes (#651)
@HofmeisterAn
Copy link
Collaborator

I will close this issue, because it contains all kinds of information to set up the configuration properly. @Omrisha this might be interesting for you as well: #610 (comment). Depending on your Dockerfile this might work:

_ = new ImageFromDockerfileBuilder()
  .WithDockerfileDirectory("C:/Repos/Microservices")
  .WithDockerfile("Applications/AuthorizationServer/Application/WebApiApplication/Dockerfile")
  .Build();

Thanks to everyone. Due to your various configurations, we were able to add some more improvements to the builder. Version 2.2.0 as well as the next release are not that strict anymore regarding path conventions etc.

If you still struggle, to set it up, please do not hesitate to reopen the issue again.

@HofmeisterAn HofmeisterAn self-assigned this Nov 2, 2022
@HofmeisterAn HofmeisterAn added this to the 2.3.0 milestone Nov 2, 2022
@0nary
Copy link

0nary commented Nov 3, 2022

I again struggle to set up an image.

My setup is quite similar to your example.
My repos is organized like this

ReposFolder
│      Example.Service.sln
│
└─── src
│     └─── Example.Service
│                Example.Service.scproj (and project file and folder)
│                Dockerfile
└─── tests
             └─── Example.Service.LiveTests
                            │      Example.Service.LiveTests.csproj
                            │      UnitTest1.cs
                            └─── Containers
                                    └─── Example.Service
                                               ExampleServiceContainer.cs
                                               ExampleServiceImage.cs

So if I'm correct I need to use .WithDockerfileDirectory(CommonDirectoryPath.GetSolutionDirectory(), string.Empty) and .WithDockerfile("src/Example.Service/Dockerfile")

But I have the {"Docker image has not been created."}

I have used a logger to see what append but it seams the problem is in my path, because he gives me only this:

Pattern ^(.+)\/\.classpath added to the regex cachePattern ^([\\\/]?(\.classpath\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.dockerignore\b|$)) added to the regex cachePattern ^([\\\/]?(\.dockerignore\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.env\b|$)) added to the regex cachePattern ^([\\\/]?(\.env\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.git\b|$)) added to the regex cachePattern ^([\\\/]?(\.git\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.gitignore\b|$)) added to the regex cachePattern ^([\\\/]?(\.gitignore\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.project\b|$)) added to the regex cachePattern ^([\\\/]?(\.project\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.settings\b|$)) added to the regex cachePattern ^([\\\/]?(\.settings\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.toolstarget\b|$)) added to the regex cachePattern ^([\\\/]?(\.toolstarget\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.vs\b|$)) added to the regex cachePattern ^([\\\/]?(\.vs\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/\.vscode\b|$)) added to the regex cachePattern ^([\\\/]?(\.vscode\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/([^\\\/]+)\.([^\\\/]+)?proj\.user\b|$)) added to the regex cachePattern ^([\\\/]?(([^\\\/]+)\.([^\\\/]+)?proj\.user\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/([^\\\/]+)?\.dbmdl\b|$)) added to the regex cachePattern ^([\\\/]?(([^\\\/]+)?\.dbmdl\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/([^\\\/]+)?\.jfm\b|$)) added to the regex cachePattern ^([\\\/]?(([^\\\/]+)?\.jfm\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/azds\.yaml\b|$)) added to the regex cachePattern ^([\\\/]?(azds\.yaml\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/bin\b|$)) added to the regex cachePattern ^([\\\/]?(bin\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/charts\b|$)) added to the regex cachePattern ^([\\\/]?(charts\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/docker\-compose([^\\\/]+)?$\b|$)) added to the regex cachePattern ^([\\\/]?(docker\-compose([^\\\/]+)?$\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/Dockerfile([^\\\/]+)?$\b|$)) added to the regex cachePattern ^([\\\/]?(Dockerfile([^\\\/]+)?$\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/node_modules\b|$)) added to the regex cachePattern ^([\\\/]?(node_modules\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/npm\-debug\.log\b|$)) added to the regex cachePattern ^([\\\/]?(npm\-debug\.log\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/obj\b|$)) added to the regex cachePattern ^([\\\/]?(obj\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/secrets\.dev\.yaml\b|$)) added to the regex cachePattern ^([\\\/]?(secrets\.dev\.yaml\b|$)) added to the regex cachePattern ^([\\\/]?((.+)\/values\.dev\.yaml\b|$)) added to the regex cachePattern ^([\\\/]?(values\.dev\.yaml\b|$)) added to the regex cachePattern ^([\\\/]?(LICENSE\b|$)) added to the regex cachePattern ^([\\\/]?(README\.md\b|$)) added to the regex cachePattern ^([\\\/]?(\.dockerignore\b|$)) added to the regex cache

If you can tell me where I'm wrong it will help me a lot.

@HofmeisterAn
Copy link
Collaborator

You exclude your own Dockerfile.

@0nary
Copy link

0nary commented Nov 3, 2022

Thanks you save me :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working question Have you tried our Slack workspace (https://testcontainers.slack.com)?
Projects
None yet
Development

No branches or pull requests

5 participants