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:
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.
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.
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.
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” :
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 :