description |
---|
Guide to build and upload on Docker hub from private Github repositories |
- 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)
- Clone the private repo on the command line (example,
openg2p-myrepo
) - Under
openg2p-myrepo/.github
folder create the following folder structure
.github/
├── docker_packages
└── workflows
- 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/:
git submodule add https://github.com/openg2p/openg2p-packaging .github/docker_packaging
This will clone openg2p-packaging
repo into the docker_packaging
folder. The folder structure will look like
.github/
├── docker_packages
|── docker_packaging
└── workflows
- Inside
workflows
folder copydocker_build.yml
and modify the following for your repo:- Set
SERVICE_NAME
to name of your Docker Hub repository - Replace
openg2p-myrepo
with your repo name
- Set
- Check in all the above.
- 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"
The above workflow will automatically run when a PR is merged into the private repo. Dockers will be built and posted to Docker Hub.