With Docker in general, the following ways to get files out of a container come to mind:
docker cp command
Copy files/folders between a container and the local filesystem
This would need to be run on the host system, however.
Mount a folder of the host system into the container as a volume, then copy files to the mounted folder inside the container.
Use a multi-stage Docker image to only leave the files you are interested in in the container at the end of the image building process. If you want to copy out files when running this image later, then this option is irrelevant.
FROM <base-image> AS build
FROM scratch AS artifacts
COPY --from=build /path/to/file /
Afterwards, you can save the image as archive with
docker save -o artifacts.tar <image-name> and unpack it to get at the contents. Note that there’s a bit more unpacking to do, because Docker saves metadata and all the layers individually (here it is just one layer because of the scratch image, however).
Store the build artifacts externally, e.g. by uploading them to a cloud storage provider.
Do you use your Docker image via
jobs.<job_id>.container.image or do you
run it like
docker run ... in a workflow step?
In the former case, use the
volume key to mount a folder into the container:
In the latter case, you would also need to do that, but by manually mounting a volume with
-v in the
docker run command.