web-dev-qa-db-ja.com

bitbucketパイプラインで複数のDockerイメージを使用することは可能ですか?

私のプロジェクトをユニットテストするためのパイプラインファイルがあります。

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

しかし、デプロイするために別のDockerイメージに切り替えることは可能ですか?

image: jameslin/python-deploy

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

「はい」または「いいえ」のいずれかを記載したドキュメントが見つからないようです。

18
James Lin

ステップごとに画像を指定できます。そのように:

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

最後にそれを見つけました:

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

ステップ(必須)ビルド実行ユニットを定義します。ステップは、パイプラインに出現する順序で実行されます。現在、各パイプラインは1つのステップしか持つことができません(デフォルトのパイプラインに1つ、各ブランチに1つ)。ステップでイメージを指定することにより、メインのDockerイメージをオーバーライドできます。

7
James Lin

「はい」または「いいえ」のいずれの情報も見つかりませんでした。そのため、このイメージは必要なすべての言語とテクノロジで構成できるため、この方法をお勧めします。

  1. デフォルトとデプロイメントの両方に必要なすべてのユーティリティを使用して、Dockerイメージを作成します。
  2. 彼らが彼らの例で示している分岐方法を使用してください https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html#Configurebitbucket-pipelines.yml-ci_branchesbranches(optional)
  3. シェルスクリプトまたは他のスクリプトを使用して、必要な特定のタスクを実行し、

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