Panel: Don't update local docker images

Created on 10 May 2017  路  7Comments  路  Source: pterodactyl/panel

Before automatically updating docker images with the daemon we should check if the image is actually published on a repository or not.

If the image name contains two slashes we always try to pull. If it has only one slash we should check if it actually exists on docker hub, if it doesn't, don't try to pull.

bug

Most helpful comment

Pretty old bug, here is a workaround if you really need to use a local image (run on the node)

# docker run -d -p 127.0.0.1:5000:5000 --name registry registry:2
# docker tag <local/image:tag> localhost:5000/my-awesome-image
# docker push localhost:5000/my-awesome-image

Now use in the panel for docker image:

localhost:5000/my-awesome-image

It will try to pull corectly and setup as needed.

All 7 comments

This would be very helpful for me since I am trying to run a Call of Duty 4 server that I built locally. The reason I built this locally is because the CoD4 installation files are about 5GB so I uploaded them to my host and built the image rather than uploading them elsewhere and having the daemon download multiple GB worth of files. After the image existed, I attempted to use this in the panel but, like @schrej mentioned above, it kept trying to pull from Docker Hub instead.

I can also see this being necessary when I add other games that don't have their installation files accessible on the Internet (such as Quake, Unreal Tournament, older Battlefield games, etc.).

I was under the assumption that docker pull is smart enough to check locally before checking remote. All the daemon does is wrap that API call, so unless there is something missing (potentially true), it should work the same as a standard pull which will go local before remote.

docker pull tries to update the image in question. If it is a local only image you would never pull. And if you pull without registry it assumes docker hub.

Pretty old bug, here is a workaround if you really need to use a local image (run on the node)

# docker run -d -p 127.0.0.1:5000:5000 --name registry registry:2
# docker tag <local/image:tag> localhost:5000/my-awesome-image
# docker push localhost:5000/my-awesome-image

Now use in the panel for docker image:

localhost:5000/my-awesome-image

It will try to pull corectly and setup as needed.

This is fixed now. To mark an image as local in the Panel simply prefix it with ~.

This is happening to us now after updating panel to 1.0 and setting up new Wings. Can't run a server with local custom image

container@pterodactyl~ Server marked as offline...
[Pterodactyl Daemon]: Updating process configuration files...
[Pterodactyl Daemon]: Ensuring file permissions are set correctly, this could take a few seconds...
container@pterodactyl~ Server marked as starting...
[Pterodactyl Daemon]: Pulling Docker container image, this could take a few minutes to complete...
[Pterodactyl Daemon]: Finished pulling Docker container image
container@pterodactyl~ Server marked as stopping...
container@pterodactyl~ Server marked as offline...
container@pterodactyl~ Error Event [9820182f-7a9f-47ff-b6b0-0c3ea6375586]: Error response from daemon: pull access denied for octoteam/gmod, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Please open a new issue, I won't re-open issues from 2018.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

stijnb1234 picture stijnb1234  路  3Comments

DaneEveritt picture DaneEveritt  路  4Comments

dennorske picture dennorske  路  4Comments

CoolJWB picture CoolJWB  路  4Comments

schrej picture schrej  路  3Comments