Add container copy/cp command for host-container file transfer#1190
Add container copy/cp command for host-container file transfer#1190simone-panico wants to merge 11 commits intoapple:mainfrom
Conversation
|
Related to #232 |
Sources/Services/ContainerAPIService/Client/ContainerClient.swift
Outdated
Show resolved
Hide resolved
Sources/Services/ContainerAPIService/Client/ContainerClient.swift
Outdated
Show resolved
Hide resolved
Sources/Services/ContainerAPIService/Server/Containers/ContainersService.swift
Show resolved
Hide resolved
Sources/Services/ContainerAPIService/Server/Containers/ContainersService.swift
Show resolved
Hide resolved
| let request = XPCMessage(route: SandboxRoutes.copyIn.rawValue) | ||
| request.set(key: SandboxKeys.sourcePath.rawValue, value: source) | ||
| request.set(key: SandboxKeys.destinationPath.rawValue, value: destination) | ||
| request.set(key: SandboxKeys.fileMode.rawValue, value: UInt64(mode)) |
There was a problem hiding this comment.
Because the set Method in XPCMessage.swift expects a UInt64
There was a problem hiding this comment.
Do you want to handle it differently? I looked at the code again and couldn't find a better option
|
⏺ Scenario 1:
Scenario 2:
Scenario 3: src with /, dst without / (src must be an existing directory)
Scenario 4: src with /, dst with / (src must be an existing directory & dst must be a directory if existing)
|
|
Hi @simone-panico The bold italic phrases are what is different from desired behavior (i.e., docker) now, and can be addressed. Below is general comments.
|
|
Hi @simone-panico You may need to build this project with local containerization (BUILDING.md), and wire up |
|
@JaewonHur the change above does not allow copying directories. It adds a tar reader/writer that will be used to support this, but it's not in the change itself. |
|
If you’re interested, I could try to create a Directory Copier within |
|
@JaewonHur @dcantah, I created apple/containerization#543 for clarity. As soon as apple/containerization#474 is merged I think I could start with implementing the directory copying. What do you think? |
|
Hi @simone-panico, sorry for the delay! We have an internal discussion how to better support |
Type of Change
Motivation and Context
Adds the
container copy(aliased ascp) command to copy files between a running container and the local filesystem.I saw #1023 and the feedback from @dcantah — the previous attempt relied on tar being installed inside the container.
This implementation takes the recommended approach:
file transfers go through the guest agent via the existing
copyIn/copyOutmethods on the coreContainerization, with no dependency on container tooling.Testing