Epic's Unreal Container: does it exist?

Hello!

Last week, I posted a question on UE4-AnswerHub(1) about downloading the docker image of Unreal Engine following the Unreal documentation (2) but got on answer.

I am wondering if the image actually exist. When I check:

docker pull ghcr.io/epicgames/unreal-engine:dev-4.27

I get “manifest unknow”. And when I check GitHub Packages pages for EpicGames

Packages · Epic Games · GitHub

I get “EpicGames can’t publish packages”. So, does the package exists or have I got a permission issue. I don’t have any issue in accessing UnrealEngine’s github repo and I have created a personal token: got documentation step 4, completed successfully.

Has anyone successfully downloaded a Development image or a Runtime Image from Epic? Any suggestion to help me solve the problem?

Thank you.

PS: if this is not a good place to post this question, let me know where to ask it.


(1) Container: pulling prebuilt returns “unknow manifest” - UE4 AnswerHub (unrealengine.com)(https://answers.unrealengine.com/questions/1048353/container-pulling-prebuilt-renders-unknow-manifest.html)

(2) Containers Quick Start | Unreal Engine Documentation(Containers Quick Start | Unreal Engine Documentation)

1 Like

I also want to use the official docker images and have the same issue. The container repository ‘ghcr.io/epicgames/unreal-engine’ mentioned in the documentation does not exist. According to Github the Epic Games account does not even support the container repository. Hopefully it is just a permission issue Configuring a package's access control and visibility - GitHub Docs

Could someone from Epic comment on this please. Is the container repository real?

Just posting to say i’m having the same problem.

Eagerly awaiting for the images!

The license for Unreal Engine does not allow publicly available images for the engine to be downloadable.
Thus, you need to use a restricted / private container repository, similar to how the Epic GitHub repository is private.
It may be that the particular repositories you’re talking about are private, and need credentials to pull, or it may be that they are no longer supported – I don’t know – but I would not expect a bare, anonymous “docker pull” to ever work for the Unreal Engine.

… the instructions are in the documentation. Complete with how to login with the credentials.

So, it should work, if OP has gone through all the steps in the document.

If the files are still missing after logging in with a github account that has access to the EpicGames repos, then there’s an issue Epic needs to address.

Yup, logged in with github account that has access rights to Unreal source but sadly no go.

I think there’s an issue with unreal setting up access rights or something. Also I think that UE5 isn’t supported yet.

To be clear I was able to build 4.27 and earlier manually using ue4-docker, but just waiting for the official images.

Hi guys,
Just read this white paper about pixel streaming: Cloud-based solutions for Unreal Engine: get the white paper! - Unreal Engine

And I thought that maybe they had published the packages on GitHub… and yes! They did:
image

Can someone test this and give a feedback? I’m busy for the next two weeks and I’d like to know if it works.

Cheers!

Hi Guys;

Thank You @E847 for pointing the packages tab out; I tried running the “run.sh” file under the source code path “/UnrealEngine/Engine/Extras/Containers/Examples/PixelStreaming” and the very first and only error that it throws is :

Pulling signalling (ghcr.io/epicgames/pixel-streaming-signalling-server:4.27)...
ERROR: Head "https://ghcr.io/v2/epicgames/pixel-streaming-signalling-server/manifests/4.27": unauthorized

I tried going through the documentation 2wice-3rice but could not find any step or any point that explains whether there is any sort of authentication required for pulling the image or how to authenticate while pulling the image because as far as I know “docker pull” does not have any argument that allows to authenticate while pulling the image (still will double check if any such thing is possible).

The source build documentation however shares steps to authenticate before building the container images under the source-code path “/UnrealEngine/Engine/Extras/Containers/Dockerfiles/linux” by creating username.txt and password.txt on the same directory level and then running the “build.sh” existing in that source code path which starts building different container images.

but that does not help for pulling this container image hosted in ghcr either…

Moving forward on the github page Packages section if we click on “pixel-streaming-signalling-server”; the page just shares a simple docker pull command :

but executing that command manually also does not work and gives the same “unauthorized” error.

docker pull ghcr.io/epicgames/pixel-streaming-signalling-server:4.27
Error response from daemon: Head "https://ghcr.io/v2/epicgames/pixel-streaming-signalling-server/manifests/4.27": unauthorized

I guess we are stuck due to insufficient documentation or there is some step that needs to be performed that we are missing but again if there is any such steps then thats not mentioned in the docs and so points towards incomplete documentation.

A lot of people should have faced this issue so I dont get why there is not much noise happening regarding this or maybe we are missing some step that doc maintainers and other containers users consider that should be known by container users on their own and did not bother adding it to the docs and those who know do that step did it anyways on their own and so did not bother checking whether that step is there in the doc or not.

Diving more deeper into UnrealEngine Docs if possible and trying to find some hidden step or way that has not been mentioned. Will update over here if am able to get over this roadblock.

Regards.

docker login? docker login | Docker Documentation

apologies if that’s already been mentioned

Hi @eblade ;

Thanks for sharing the link and yes that part is already mentioned, its not directly mentioned in the unreal containers documentation but when I started digging through how to use containers with images from GHCR while using docker commands, this part of authenticating to GHCR is mentioned in the intro docs related to “working with the container registry” :

https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry

and this part/step works just fine, I do get the

> Login Succeeded

Output.

But after that the steps in GHCR docs dont share the requirement to use any custom arguments while pulling images from the GHCR repo.

Which makes it seem like either something is missing in unrealengine container docs or maybe the access levels (scopes) required for the PAT as per GHCR docs might be mismatching from the one that has been shared with me; will check and confirm that the access levels (scopes) recommended by GHCR are provided to the PAT used by me or not just to clear my internal doubts.

Regards.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Editing the reply because unrealengine forum does not allow new users to reply more than 3 times to a thread for their own reasons
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Hey Guys; the issue resolved for me.

The issue was that there had been an oversight in providing the required scopes to the PAT that we need to create on github side as per the GHCR docs you need to add “write:packages” scope to the PAT that you are creating. In actuality “read:packages” would be just fine to download the container images but “write:packages” provides required necessary access to the source code repo as well which will be required for the build process to download the source code during the build process.

All I had to do was enable the “write:packages” in my scopes to the PAT of my github account :

and then just reran :

$ export CR_PAT=YOUR_TOKEN

and

$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
> Login Succeeded

and then the

docker pull ghcr.io/epicgames/pixel-streaming-signalling-server:4.27

works just fine.

Regards.

2 Likes

oooh, glad to see someone got it figured out!
now i hope to see what you all do with it :smiley:

thanks, it works now