Google Artifact Registry

Originellement, l’hébergement de l’image Docker se faisait sur DockerHub, qui propose l’hébergement d’UNE image Docker privée. Notre projet en nécessite au minimum deux, ainsi, il a fallu trouver d’autres solutions.

Google Cloud Platform

Et c’est dans nos recherches que nous avons découvert Google Cloud Platform, aussi appelé “GCP”.
Cet ensemble d’outils cloud signé Google propose un service d’hébergement de conteneurs Docker appelé Google Artifact Registry, et propose une offre d’essai comprenant 300$ pendant 90j.
Vu l’aspect bon marché de cette solution (prix ici : https://cloud.google.com/artifact-registry/pricing) et le crédit qui nous est offert, nous avons décidé de profiter de cette offre, afin de mettre à niveau notre hébergement d’images Docker.

Collaboration

L’autre avantage de cette plateforme est que l’on peut désigner des personnes qui pourront gérer le registre en plus de la personne qui a l’abonnement.
Cela permet une plus grande autonomie des membres de l’équipe, et permet l’utilisation d’autres services (VMWare, Cloud Build) par d’autres personnes sur le même abonnement.

Configuration

Evidemment, un changement de plateforme veut aussi dire un changement de configuration ! Voici les choses qui ont changé :

name: Docker Image CI

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: sdn-api
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
    - name: Docker login
      env:
        DOCKER_USER: ${{secrets.DOCKER_USER}}
        DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}}
      run: |
                docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
      working-directory: /home/user/SDN-Cloudstack/SDN-Cloudstack
    - name: Build the Docker image
      run: docker image build . --file Dockerfile --tag europe-west1-docker.pkg.dev/sdn-cloudstack/alestrio/sdn-cloudstack:latest
      working-directory: /home/user/SDN-Cloudstack/SDN-Cloudstack
    - name: Docker push
      run: docker image push europe-west1-docker.pkg.dev/sdn-cloudstack/alestrio/sdn-cloudstack:latest
      working-directory: /home/user/SDN-Cloudstack/SDN-Cloudstack
  • Enfin, changement du docker-compose.yaml :
api_r1:
    restart: always
    image: europe-west1-docker.pkg.dev/sdn-cloudstack/alestrio/sdn-cloudstack:latest