Perl - Dockerfile Publish Failures
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #2402 di @Omnideth — integrata
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 58/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- build-system, devops
Direzione di ricerca
Start with the cpanm and Carton Dockerfile generators in src/CommunityToolkit.Aspire.Hosting.Perl/PerlAppResourceBuilderExtensions.Dockerfile.cs, then read HasDependencyFiles in src/CommunityToolkit.Aspire.Hosting.Perl/PerlAppResourceBuilderExtensions.cs to compare publish behavior with run mode. Trace how WithPackage(...) modules and cartonDeployment are represented, then inspect the related tests. Done means the listed manifest and package cases generate images that build and include their dependencies.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Both Dockerfile generators emit COPY lines for dependency manifests without checking that the files exist:
- cpanm (PerlAppResourceBuilderExtensions.Dockerfile.cs#L167):
COPY cpanfile ./ - Carton (#L215-L216):
COPY cpanfile ./andCOPY cpanfile.snapshot ./. The snapshot is copied even when
WithProjectDependencies(cartonDeployment: false)is used, where it's optional.
docker build fails with "/cpanfile": not found for:
- any Perl app with no
cpanfile, including a plainAddPerlScriptwith no dependencies, which is the
default publish path (the cpanm generator is the fallback for every resource); - apps that declare dependencies through
Makefile.PL/Build.PLonly. Run mode supports these
(HasDependencyFiles),
but publish doesn't; - Carton apps without a snapshot, when
cartonDeployment: false.
A related gap: modules declared only through WithPackage(...) are never installed in the image, so an
app that publishes successfully can still fail at runtime with Can't locate Foo/Bar.pm.
Regression
No response
Steps to reproduce
1. Create an app directory with only `app.pl`, and no `cpanfile`.
2. `builder.AddPerlScript("app", "../app", "app.pl");`
3. `aspire publish`, then build the generated Dockerfile.
Expected behavior
- No manifest: no dependency
COPY/ install step, and the image builds. Makefile.PL/Build.PLonly: copy them and runcpanm --installdeps --notest ..- Carton: copy
cpanfile.snapshotonly if it exists; require it only whencartonDeploymentistrue. WithPackagemodules: install them withcpanm --notest <Module> ...in the image (respecting
local::lib), after project dependencies.
Screenshots
No response
IDE and version
VS Code
IDE version
No response
Nuget packages
Additional context
No response
Help us help you
Yes, I'd like to be assigned to work on this item
- Lingua principale
- C#
- Stelle
- 632
- Fork
- 204
- Merge medio
- 2g 13h
- PR unite (30g)
- 92
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CommunityToolkit/Aspire
-
[14.0] Remove Java ResourceAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
CommunityToolkit/Aspire#1622 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[14.0] Remove Rust resourceAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
CommunityToolkit/Aspire#1620 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Update Toolkit to Aspire 17.1 nightly 17.1.0-preview.1.26556.8Forse già presa @aaronpowell l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 1/100
CommunityToolkit/Aspire#2421 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
CommunityToolkit/Aspire#2420 ·
I maintainer di solito rispondono entro 1 giorno
-
Chroma: a Distributed setting in the client integrationForse già presa @Laurianti l’ha presa 1 giorno fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 20/100
CommunityToolkit/Aspire#2418 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di CommunityToolkit/Aspire
Issue simili
-
[P2] Interpreter: Array.prototype.findLastIndex starts at the wrong index for long array-likesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
RicoSuter/Namotion.Interceptor#918 ·
I maintainer di solito rispondono entro 1 giorno
-
area-integrations
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Sample solution restore fails with NU1109 (Microsoft.Extensions.Logging.Abstractions downgrade)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
ardalis/CleanArchitecture#1150 ·
I maintainer di solito rispondono entro 1 giorno