When you link a container image with a repository, the package landing page will show information and links from the repository, such as the README.
To connect a repository and a container image on GitHub, they must share the same owner on GitHub. For example, both my_repo
and hello_docker
are owned by the user monalisa
:
https://github.com/monalisa/my_repo
https://github.com/monalisa/hello_docker
Connecting a repository to a user-owned container image on GitHub
-
On GitHub, navigate to the main page of your user account.
-
In the top right corner of GitHub, click your profile photo, then click Your profile.
-
On your profile page, in the top right, click Packages.
-
Search for and select your package.
-
In the top right of your container image's landing page, click Package settings.
-
Under your package versions, click Connect repository.
-
Select a repository, then click Connect repository.
Connecting a repository to an organization-owned container image on GitHub
-
On GitHub, navigate to the main page of your organization.
-
Under your organization name, click Packages.
-
Search for and select your package.
-
In the top right of your container image's landing page, click Package settings.
-
Under your package versions, click Connect repository.
-
Select a repository, then click Connect repository.
Connecting a repository to a container image on the command line
-
In your Dockerfile, add this line, replacing
OWNER
andREPO
with your details:LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
For example, if you're the user
monalisa
and ownmy-repo
, you would add this line to your Dockerfile:LABEL org.opencontainers.image.source=https://github.com/monalisa/my-repo
For more information, see "LABEL" in the official Docker documentation and "Pre-defined Annotation Keys" in the
opencontainers/image-spec
repository. -
Build your container image. This example builds an image from the Dockerfile in the current directory and assigns the image name
hello_docker
.$ docker build -t hello_docker .
-
Optionally, review details for the Docker image you want to tag.
$ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > ghcr.io/my-org/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > ghcr.io/my-username/hello_docker latest 38f737a91f39 47 hours ago 91.7MB > hello-world latest fce289e99eb9 16 months ago 1.84kB
-
Tag your Docker image with your desired image name and hosting destination.
$ docker tag IMAGE_NAME ghcr.io/OWNER/NEW_IMAGE_NAME:TAG
For example:
$ docker tag 38f737a91f39 ghcr.io/monalisa/hello_docker:latest
-
If you haven't already, authenticate to GitHub Container Registry. For more information, see "Authenticating to GitHub Container Registry."
$ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin > Login Succeeded
-
Push your container image to GitHub Container Registry.
$ docker push ghcr.io/OWNER/IMAGE-NAME:TAG
For example:
$ docker push ghcr.io/monalisa/hello_docker:latest