是否可以在bitbucket管道中使用多个docker镜像?

时间:2016-10-21 00:24:25

标签: bitbucket-pipelines

我有这个管道文件来对我的项目进行单元测试:

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

我似乎无法找到任何说明是或否的文件。

3 个答案:

答案 0 :(得分:24)

您可以为每个步骤指定图像。像那样:

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

答案 1 :(得分:6)

终于找到了它:

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

  

step(必需)定义构建执行单元。执行步骤   它们出现在管道中的顺序。目前,每个   管道只能有一个步骤(一个用于默认管道,另一个用于管道)   为每个分支)。您可以通过指定覆盖主Docker镜像   一步中的图像。

答案 2 :(得分:2)

我没有发现任何信息说是或否,所以我假设是因为这个图像可以配置你需要的所有语言和技术我会建议这个方法:

  1. 使用默认和部署所需的所有实用程序创建docker镜像。
  2. 使用他们在示例https://confluence.atlassian.com/bitbucket/configure-bitbucket-pipelines-yml-792298910.html#Configurebitbucket-pipelines.yml-ci_branchesbranches(optional)
  3. 中显示的分支方法
  4. 使用shell脚本或其他脚本来运行您需要的特定任务
  5. 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