[ECS] Waarom worden .NET en app niet gevonden in deze image?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • timmie1
  • Registratie: Juni 2008
  • Laatst online: 12:45
Ik ben al enige weken( :( ) aan het proberen om mijn software projectje(ASP.NET-project met C# in Visual studio) te publiceren in mijn eigen repository in Amazon Elastic Container Registry en de image daarvan automatisch te laten uitvoeren in Amazon ESC.

Ik heb e.e.a. nu dusdanig werkend dat ik de code vanaf Visual Studio kan pushen naar Github, welke het project vervolgens met behulp van een workflow oppakt en door middel van een dockerfile verwerkt tot een docker image dat in ECR wordt gepubliceerd.

Wat vervolgens moet gebeuren: ESC moet de image vanaf Elastic Container Registry halen, een container aanmaken en deze hosten.

Ik heb hiervoor een Task Definition gemaakt die door een Service wordt opgepakt en uitgevoerd. Het is te zien dat deze taken worden uitgevoerd(statussen pending, provisioning, activating) zijn zichtbaar) maar tot running komt het nooit. In de logs kan ik het volgende terugvinden:

* You intended to execute a .NET application:
The application 'Album.Api.dll' does not exist.
* You intended to execute a .NET SDK command:
No .NET SDKs were found.
Download a .NET SDK:
https://aka.ms/dotnet/download
Learn about SDK resolution:
https://aka.ms/dotnet/sdk-not-found
The command could not be loaded, possibly because:


Het lijkt dus dat .NET en de dll in mijn app niet gevonden worden.
Dit terwijl ik in de Dockerfile duidelijk aangeef:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
WORKDIR /Album.Api

# Copy everything
COPY . ./
# Restore as distinct layers
RUN dotnet restore
# Build and publish a release
RUN dotnet publish -c Release -o out

# Build runtime image.
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /Album.Api
COPY --from=build-env /Album.Api .
ENTRYPOINT ["dotnet", "Album.Api.dll"]


Zien jullie waar het misgaat?

Spiegeltje, spiegeltje aan de wand, wie heeft de mooiste telefoon van het land?

Beste antwoord (via timmie1 op 10-07-2023 10:34)


  • tekken4111
  • Registratie: Augustus 2011
  • Laatst online: 03-06 23:15
Line 9 publish je de release naar een folder genaamd out (-o out). Maar line 14 copy je daar niet vandaan.

Probeer op line 14 eens:
code:
1
COPY --from=build-env /Album.Api/out .

Alle reacties


Acties:
  • 0 Henk 'm!

  • _Apache_
  • Registratie: Juni 2007
  • Laatst online: 13:51

_Apache_

For life.

De melding is dat album.api.dll niet gevonden gevonden kan worden. Bestaat die?

Wat gebeurt er als je deze docker file lokaal runt?

Zero SR/S 17.3kWh / 2700WP PV / HRSolar zonneboiler


Acties:
  • Beste antwoord
  • +4 Henk 'm!

  • tekken4111
  • Registratie: Augustus 2011
  • Laatst online: 03-06 23:15
Line 9 publish je de release naar een folder genaamd out (-o out). Maar line 14 copy je daar niet vandaan.

Probeer op line 14 eens:
code:
1
COPY --from=build-env /Album.Api/out .

Acties:
  • 0 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 08:34
Heb je de image ook geprobeerd lokaal te runnen? Want uiteindelijk doet ECS (juiste volgorde van letters ;) ) niets anders dan een EC2 opspinnen (of een bestaande server ergens deels kapen als je Fargate gebruikt) en een container starten.
Als hij dus lokaal prima werkt zou dat op ECS ook zo moeten zijn gezien alle dependencies al in je image horen te zitten.

Acties:
  • +2 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Zoals @Merethil aangeeft zul je het eerst lokaal werkend moeten krijgen. Ik kan mij niet voorstellen dat het lokaal werkt, en op ECS een file niet kan vinden. Dat zou betekenen dat je niet het juiste image gepushed hebt. Het is dan zonde om al de extra stappen van het moeten deployen naar ECS er bij moet nemen als het lokaal al niet werkt.

Om het lokaal werkend te krijgen is de suggestie van @tekken4111 iets om naar te kijken.

[ Voor 32% gewijzigd door Woy op 07-07-2023 09:14 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • timmie1
  • Registratie: Juni 2008
  • Laatst online: 12:45
Allen, vriendelijk bedankt voor de reacties. Lokaal werkt alles prima, het euvel deed zich alleen voor bij Amazon. Het probleem is inmiddels opgelost. Het was inderdaad een foute directory, zoals @tekken4111 aangaf. Direct na aanpassing draait het als een zonnetje.

Spiegeltje, spiegeltje aan de wand, wie heeft de mooiste telefoon van het land?


Acties:
  • +2 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 08:34
timmie1 schreef op maandag 10 juli 2023 @ 10:34:
Allen, vriendelijk bedankt voor de reacties. Lokaal werkt alles prima, het euvel deed zich alleen voor bij Amazon. Het probleem is inmiddels opgelost. Het was inderdaad een foute directory, zoals @tekken4111 aangaf. Direct na aanpassing draait het als een zonnetje.
Het lijkt me heel sterk dat de image wel werkte als je er lokaal een container van maakte, want dat is nou juist de kracht van containers - "works on my machine" zou niet langer een euvel mogen zijn omdat je image alle dependencies bevat.
Weet je zeker dat je niet bedoelt dat de code op zich gewoon lokaal werkte? Want dat heeft weinig te maken met je oorspronkelijke probleemstelling :+

Maar goed, fijn dat het werkt!
Pagina: 1