我想将我的集成测试作为 Bitbucket pipelines CI的一部分运行 . 我的 integration tests 测试了一个针对空 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
现在我只需要创建一个正确配置了 nodejs
和 mongodb
的docker镜像 . 我可以通过创建以下 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"]
Problem - Question
我可以在本地使用docker编写我的环境,但是如何制作单个图像,而不是使用docker compose,这样我就可以公开发布该图像以便在我的Bitbucket CI中使用它?我仍然对docker感到新鲜,但我已经从文档中了解到尝试在我的nodeJS图像上安装MongoDB是一个红旗 .
1 回答
Bitbucket Pipeline还没有对docker compose的原生支持 .
但是,您可以在bitbucket-pipelines.yml中定义最多3个服务 . 文件可在:https://confluence.atlassian.com/bitbucket/service-containers-for-bitbucket-pipelines-874786688.html