Gitlab Ci Python Docker

Want to use an image from a private Docker registry as the base for GitLab Runner’s Docker executor?

ECR example:

Full job:

Assuming the image exists on the registry, you can set the DOCKER_AUTH_CONFIG variable within your project’s Settings > CI/CD page:

Gitlab Ci Python Docker Examples

The value of auth is a base64-encoded version of your username and password that you use to authenticate into the registry:

Continuing with the ECR example, you can generate a password using the following command:

Docker

To test, run:

Now, add the DOCKER_AUTH_CONFIG variable to your project’s Settings > CI/CD page:

GitLab CI/CD Examples This page contains links to a variety of examples that can help you understand how to implement GitLab CI/CD for your specific use case. Examples are available in several forms. As a collection of:.gitlab-ci.yml template files maintained in GitLab, for many common frameworks and programming languages. Use Docker to build Docker imagesall tiers. You can use GitLab CI/CD with Docker to create Docker images. For example, you can create a Docker image of your application, test it, and publish it to a container registry. To run Docker commands in your CI/CD jobs, you must configure GitLab Runner to support docker commands.

Test out your build. You should see something similar to the following in your logs, indicating that the login was successful:

Unfortunately, we’re not done yet since the generated password/token from the get-login-password command is only valid for 12 hours. So, we need to dynamically update the DOCKER_AUTH_CONFIG variable with a new password. We can set up a new job for this:

Here, after exporting the appropriate environment variables (so we can access them in the aws_auth.sh script), we installed the appropriate dependencies, and then ran the aws_auth.sh script.

aws_auth.sh:

What’s happening?

  1. We generated a new password from the get-login-password command and assigned it to AWS_PASSWORD
  2. We then base64 encoded the username and password and assigned it to ENCODED
  3. We used jq to create the necessary JSON for the value of the DOCKER_AUTH_CONFIG variable
  4. Finally, using a GitLab Personal access token we updated the DOCKER_AUTH_CONFIG variable

Make sure to add all variables you project’s Settings > CI/CD page.

Gitlab ci python docker softwareGitlab Ci Python DockerPython

Gitlab Ci Python Docker Online

Now, the DOCKER_AUTH_CONFIG variable should be updated with a new password for each build.

That’s it!

Gitlab Ci Python Docker

Gitlab Ci Python Docker Software

Helpful Resources:

Gitlab Ci Docker Image

  1. GitLab Runner Issue Thread - Pull images from aws ecr or private registry
  2. GitLab Docs - Define an image from a private Container Registry

Comments are closed.