Automatic Build and Upload of Private Dockers
Guide to build and upload on Docker hub from private Github repositories
Docker Hub
Create a private repository on Docker Hub for all dockers that will be uploaded.
Make sure a 'bot' user is created on Docker Hub that has read/write access to these repositories
Create an access token for this user. (Refer Docker Hub docs)
Creation of Github actions
Clone the private repo on the command line (example,
openg2p-myrepo
)Under
openg2p-myrepo/.github
folder create the following folder structure
Inside
docker_packages
folder create package files for modules like Social Registry, PBMS, etc. See sample package files. Replaceopeng2p-myrepo
with your private repo name.Run following command in your private repo root folder
openg2p-myrepo/:
This will clone openg2p-packaging
repo into the docker_packaging
folder. The folder structure will look like
Inside
workflows
folder copydocker_build.yml
and modify the following for your repo:Set
SERVICE_NAME
to name of your Docker Hub repositoryReplace
openg2p-myrepo
with your repo name
Check in all the above.
Enabling Github actions
Under Secrets and variables->Actions create the following secrets:
DOCKER_HUB_ACTOR: Docker Hub user id that has permission to read/write the above registry
DOCKER_HUB_ORGANIZATION: Organization under which your private repo resides
DOCKER_HUB_TOKEN: Access token for this user on Docker Hub
Under your private repo Settings->Actions->General, enable "Allow all actions and reusable workflows"
Run
The above workflow will automatically run when a PR is merged into the private repo. Dockers will be built and posted to Docker Hub.
Last updated