Unify the copy-to-container methods and add reading a file from a container
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 42/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- docker, node.js, typescript
Direzione di ricerca
Start with the four listed files and trace how copy methods, options, and StartedTestContainer are implemented and forwarded. Review #1522 and coordinate with #1518 before changing the shared copy API. Done means unified before and after start copy methods with matching options and behavior, a way to read one file, and deprecated aliases for existing methods.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happens
Copying into a container is spread over nine methods with slightly different shapes.
Before start:
withCopyFilesToContainer(files[])withCopyDirectoriesToContainer(directories[])withCopyContentToContainer(contents[])withCopyArchivesToContainer(archives[])withCopyToContainerOptions(options)
After start:
copyFilesToContainer(files[])copyDirectoriesToContainer(directories[])copyContentToContainer(contents[])copyArchiveToContainer(tar, target?, options?)
The two sides do not behave the same (from reading the code):
DirectoryToCopy.modeis applied before start and ignored after start.CopyToContainerOptionsapplies to every copy before start, but after start onlycopyArchiveToContaineraccepts it.- The archive method is plural with an array before start, singular with positional arguments after.
Copying out is limited to copyArchiveFromContainer(path), which resolves to a tar stream. Reading one file's content means bringing a tar parser.
Expected
- One
withCopyToContainerand onecopyToContainerthat accept a list of entries, each a host path, inline content or an archive, withtargetandmode. The same options and behaviour on both sides. - A way to read a single file from a container, for example
readFile(path): Promise<Buffer>orcopyFileFromContainer(path, destination). - The existing methods stay as deprecated aliases.
Where
packages/testcontainers/src/test-container.tspackages/testcontainers/src/generic-container/generic-container.tspackages/testcontainers/src/generic-container/started-generic-container.tspackages/testcontainers/src/types.ts
Notes
- Java has
withCopyToContainer(Transferable, containerPath)andwithCopyFileToContainer(MountableFile, containerPath), pluscopyFileFromContainer(containerPath, destinationPath)and a variant that passes the file'sInputStreamto a function. Go hasFiles []ContainerFileon the request andCopyFileFromContainer, which returns the file's content. - Related: #1526. The
modefield should say it is an octal permission.
Dependencies
- Stack on #1522: the reuse hash has to cover copied files. Changing how copies are stored first would move that target.
- Coordinate with #1518: for the old method names.
- Changes
StartedTestContainer, which today means the interface,StartedGenericContainerand the forwarder onAbstractStartedContainer. Several other issues do the same. The edits do not overlap, so they can go in parallel.
- Lingua principale
- TypeScript
- Stelle
- 2.6k
- Fork
- 274
- Merge medio
- 1g 14h
- PR unite (30g)
- 44
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Nessun 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 testcontainers/testcontainers-node
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
testcontainers/testcontainers-node#1539 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
testcontainers/testcontainers-node#1533 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
testcontainers/testcontainers-node#1531 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
testcontainers/testcontainers-node#1529 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement minor
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
testcontainers/testcontainers-node#1528 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di testcontainers/testcontainers-node
Issue simili
-
Contrib indemnité de départ à la retraite : faire le pont avec le simulateur sur la page génériqueApertaP1
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
SocialGouv/code-du-travail-numerique#7561 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
kubernetes-sigs/headlamp#7950 ·
I maintainer di solito rispondono entro 3 giorni
-
README for cliForse già presa @Janvi-kapoor l’ha presa oggi. ApertaOSCI'26
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
GauravKarakoti/SecureFlow#1308 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
vitest-dev/vitest#11577 ·
I maintainer di solito rispondono entro 1 giorno