Using GitLab CI/CD to build and store container images
Often building container images consume a lot of bandwidth and back at home I don’t have a good internet connection to build images again and again.
Also, there are times when I have to, again and again, push the container images to Docker hub in a short period. I felt that they tend to slow down the upload speeds when I do this. (I’m not sure how accurate is this observation.)
Instead of Docker Hub to host the repository and building images on my local machine, I thought of using GitLab’s CI/CD to do the job.
Setting up repository to build and store container images
-
Create a new Project in GitLab.

-
Create a new file
Docker.gitlab-ci.ymlin themasterbranch as a template to use when we will use CI/CD pipeline to build the docker images.
#Docker.gitlab-ci.yml
variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
IMAGE_NAME: hello # CHANGE IMAGE NAME
TAG: latest # EDIT TAG
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build --pull -t $CI_REGISTRY_IMAGE/$IMAGE_NAME:$TAG .
- docker push $CI_REGISTRY_IMAGE/$IMAGE_NAME:$TAG
Building a container Image
- Create a new branch from
master.git checkout -b flask-app -
Add required files and
Dockerfileto the branch. -
Use the
Docker.gitlab-ci.ymltemplate to create a new.gitlab-ci.ymlfile which will build the image.
Remember: Change the variableIMAGE_NAMEin the yaml file with the name of the image. - Push the changes and naviage to CI/CD and Container Registry section of the project to see the image build and stored images.
I use this GitLab repository to do the job. You can clone it and get started without doing the above steps.
Discussion
Comments
Comments are powered by Disqus and load only when requested.