集成测试与Docker和Bitbucket管道

时间:2017-05-02 16:06:35

标签: node.js mongodb docker bitbucket-pipelines

我想将集成测试作为 Bitbucket管道 CI的一部分运行。我的集成测试测试针对空 MongoDB 数据库运行的NodeJS后端。为了实现这一点,我想创建一个Docker Image,Bitbucket管道可以从docker镜像库中提取。

我的bitbucket-pipelines.yml将类似于:

image: <my image with nodejs and a mongodb linked to it>
pipelines:
  default:
    - step:
        script:
          - npm test

现在我只需要创建一个正确配置nodejsmongodb的泊坞窗映像。我可以通过创建以下docker-compose.yml文件来构建环境:

version: "2"
services:
  web:
    build: .
    volumes:
      - ./:/app
    ports:
      - "3000:3000"
      - "9090:8080"
    links:
     - mongo
  mongo:
   image: mongo
   ports:
    - "27018:27017"

我的Dockerfile:

FROM node:7.9
RUN mkdir /app
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
EXPOSE 3000
CMD ["npm", "run", "dev"]

问题 - 问题

我可以在本地使用docker编写我的环境,但是如何制作单个图像,而不是使用docker compose,这样我就可以公开发布该图像,以便在我的Bitbucket CI中使用它?我仍然对Docker感到新鲜,但我已经从文档中了解到尝试在我的nodeJS图像上安装MongoDB是一个红旗。

1 个答案:

答案 0 :(得分:3)

Bitbucket Pipeline还没有本地支持docker compose。

但是,您可以在bitbucket-pipelines.yml中定义最多3个服务。可从以下网址获取文档:https://confluence.atlassian.com/bitbucket/service-containers-for-bitbucket-pipelines-874786688.html