[Microsoft] Exécutez l'agent Azure Pipelines (VSTS) sur Docker ou Azure Container Instance

Azure Pipelines Exécutez l'agent avec Docker.

Qu'est-ce que Azure Pipelines?

Un service qui construit / déploie comme Jenkins.

Qu'est-ce que l'agent Azure Pipelines?

C'est un démon qui exécute réellement le processus de génération et de déploiement en réponse aux instructions d'Azure Pipelines.

Azure Pipelines est fourni avec une version gratuite, mais il existe une limite de temps d'exécution mensuelle. En préparant votre propre agent, vous pouvez l'utiliser sans le temps maximum.

Ce dont vous avez besoin à l'avance

Nom de l'organisation

Consultez l'URL Azure Dev Ops. Je pense que cela ressemble à https: // dev.azure.com / hogehoge. C'est la partie de «hogehoge».

Personal Access Token

C'est ce dont l'agent a besoin pour se connecter à Azure DevOps.

Cliquez ici [Comment obtenir un jeton d'accès personnel](https://docs.microsoft.com/ja-jp/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs = page de prévisualisation).

Définissez ce qui suit comme étendue.

Exécuter avec Docker

L'image officielle de Micorosoft est obsolète, donc je l'ai créée bien que j'en ai peur. sengokyu/azure-pipelines-agent:latest Tirez comme d'habitude.

docker pull sengokyu/azure-pipelines-agent

Au moment de l'exécution, indiquez le nom de l'organisation et le jeton d'accès personnel préparés à l'avance en tant que variables d'environnement.

Nom de variable valeur
ORG Nom de l'organisation
TOKEN Personal Access Token
docker run -d -e TOKEN=${PAT} -e ORG=${ORG} sengokyu/azure-pipelines-agent

Exécuter sur Azure Container Instance

Déployez à l'aide du modèle ARM.

Il s'agit de la partie de définition de ressource du modèle ARM. Le tout est mis sur GitHub.

template.json


  "resources": [
    {
      "name": "[parameters('containerGroupName')]",
      "type": "Microsoft.ContainerInstance/containerGroups",
      "apiVersion": "2019-12-01",
      "location": "[resourceGroup().location]",
      "properties": {
        "containers": [
          {
            "name": "[parameters('agent')]",
            "properties": {
              "image": "[variables('containerImage')]",
              "resources": {
                "requests": {
                  "cpu": "[parameters('cpu')]",
                  "memoryInGb": "[parameters('memoryInGb')]"
                }
              },
              "environmentVariables": [
                { "name": "TOKEN", "secureValue": "[parameters('token')]" },
                { "name": "ORG", "value": "[parameters('org')]" },
                { "name": "POOL", "value": "[parameters('pool')]" },
                { "name": "AGENT", "value": "[parameters('agent')]" }
              ]
            }
          }
        ],
        "osType": "Linux",
        "restartPolicy": "Never"
      }
    }
  ]

Créez un fichier décrivant chaque paramètre.

parameters.json


{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "containerGroupName": { "value": "vsts-agent" },
    "pool": { "value": "Default" },
    "agent": { "value": "vsts-agent-on-aci" },
    "token": { "value": "YourPersonalAccessToken" },
    "org": { "value": "YourOrganizationName" },
    "cpu": { "value": 4 },
    "memoryInGb": { "value": 8 }
  }
}

Exécutez la commande az.

az deployment group create -f template.json -p @parameters.json -g ResourceGroupName

Recommended Posts

[Microsoft] Exécutez l'agent Azure Pipelines (VSTS) sur Docker ou Azure Container Instance
Exécuter PureScript sur un conteneur Docker
Exécutez NordVPN dans le conteneur Ubuntu Docker (Windows)
Exécutez openvpn sur Docker (Windows)
Exécutez l'exemple SSE (Server-Sent-Event) sur le docker
Exécutez puppeteer-core sur Heroku (édition Docker)
Exécutez l'AWS CLI sur Docker
Pour exécuter JavaFX sur Docker
Résumé de la compréhension de Docker par les débutants ⑤ ~ Jusqu'au déploiement d'un conteneur Docker sur une instance EC2 ~