docker-compose.yml file that builds an image like this:
services: my-service: build: context: My.VS.AppFolder networks: - my-docker networks: my-docker: external: true
the defined network is only avaliable in the
ENTRYPOINT. But not during build. How can I access another container on the same network
my-docker during build of the
Use case: Fetching NuGet packages from private repo
Description of the use case
I have an ASP.NET Core MVC 2.1 web application. For a better seperation of concerns, I want to implement certain features in another seperated web app (e.g admin interface). To avoid copying shared things like app layout (Razor) or some helper utility classes, I created a shared project for those things.
So there are three projects now:
- MyApp (The original application)
- MyApp.Core (For shared things)
Since MyApp.Core needs to be referenced from the other projects, I installed BaGet as simple NuGet hosting repo for my docker build environment. This container is internally referenced with it’s DNS name in
nuget.config, created at solution level of
MyApp (same on new
MyApp.Admin but let’s focus on
MyApp for simplicity).
MyApp I’m doing now this:
RUN dotnet restore --configfile nuget.config
and need to access the dns name called
baget on the
my-docker network. Researchs show that this is only possible with at least version 3.4 of
docker-compose, and seems still not officially documentated. But Docker removed several options from v2 in v3, for example ressource limits like
mem_limits I’m using. From v3, they’re only avaliable using swarm, not on single nodes any more.
So I currently don’t see any solution than migrating to v3 and swarm, which would cause extra work and complexity without benefits other than this networking issue. My project isn’t that big that swarm is required.