1

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

我的bitbucket-pipelines.yml会是这样的:

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

现在我只需要创建一个 docker 镜像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 compose 我的环境在本地运行,但是如何制作单个图像,而不是使用 docker compose,以便我可以公开发布该图像以在我的 Bitbucket CI 中使用它?我对 docker 还是很陌生,但我已经从文档中了解到,试图在我的 nodeJS 映像之上安装 MongoDB 是一个危险信号。

4

1 回答 1

3

Bitbucket Pipeline 还没有对 docker compose 的原生支持。

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

于 2017-05-02T22:18:43.700 回答