web-dev-qa-db-fra.com

Est-il possible d'utiliser plusieurs images Docker dans le pipeline Bitbucket?

J'ai ce fichier pipeline pour tester mon projet:

image: jameslin/python-test

    pipelines:
      default:
        - step:
            script:
              - service mysql start
              - pip install -r requirements/test.txt
              - export Django_CONFIGURATION=Test
              - python manage.py test

mais est-il possible de passer à une autre image docker à déployer?

image: jameslin/python-deploy

    pipelines:
      default:
        - step:
            script: 
              - ansible-playbook deploy

Je n'arrive pas à trouver de documentation disant Oui ou Non.

18
James Lin

Vous pouvez spécifier une image pour chaque étape. Comme ça:

pipelines:
  default:
    - step:
        name: Build and test
        image: node:8.6
        script:
          - npm install
          - npm test
          - npm run build
        artifacts:
          - dist/**
    - step:
        name: Deploy
        image: python:3.5.1
        trigger: manual
        script:
          - python deploy.py
41
Dmitry Zaytsev

Enfin trouvé:

https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html#Configurebitbucket-pipelines.yml-ci_stepstep (obligatoire)

étape (obligatoire) Définit une unité d'exécution de construction. Les étapes sont exécutées dans l'ordre dans lequel elles apparaissent dans le pipeline. Actuellement, chaque pipeline ne peut avoir qu'une seule étape (une pour le pipeline par défaut et une pour chaque branche). Vous pouvez remplacer l'image Docker principale en spécifiant une image dans une étape.

7
James Lin

Je n'ai trouvé aucune information disant oui ou non non plus donc ce que j'ai supposé, c'est que puisque cette image peut être configurée avec toutes les langues et technologies dont vous avez besoin, je suggère cette méthode:

  1. Créez votre image Docker avec tous les utilitaires dont vous avez besoin pour la configuration par défaut et le déploiement.
  2. Utilisez la méthode de branchement qu'ils montrent dans leurs exemples https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html#Configurebitbucket-pipelines.yml-ci_branchesbranches (facultatif)
  3. Utilisez des scripts Shell ou d'autres scripts pour exécuter les tâches spécifiques dont vous avez besoin et

enter image description here

image: yourusername/your-image

pipelines:
 branches:
  master:
  - step:
      script: # Modify the commands below to build your repository.
        - echo "Starting pipelines for master"
        - chmod +x your-task-configs.sh #necessary to get Shell script to run in BB Pipelines
        - ./your-task-configs.sh
feature/*:
  - step:
      script: # Modify the commands below to build your repository.
        - echo "Starting pipelines for feature/*"
        - npm install
        - npm install -g grunt-cli
        - npm install grunt --save-dev
        - grunt build 
2
isaac weathers