This question is in reference to Atlassian Documentation: Use Docker images as build environments in Bitbucket Pipelines
I currently use Docker-Compose and have several Docker containers that I need to properly test. How do I set that up with Pipelines?
This makes pipelines really useless for us. The container idea is to have one process per container.
Please integrate this with the standardised docker-compose.yml file. No need for a further declaration option.
Three lines I added to the "script" block:
script:
- apt-get update
# Add python pip and bash
- apt-get -y install python3-minimal python3-pip
# Install docker-compose via pip
- pip3 install docker-compose
I was using the python:3.7.3 image, but it would work on a lot of ubuntu-based images I think.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As an update, Bitbucket has recently announced additional features for docker pipelines that not only allows multiple container builds but also supports docker-compose.
We’re also excited to announce that Pipelines now offers complete hosted Docker support, allowing you to build, run and test your Docker-based services in any configuration that doesn’t require privileged mode on the host. This includes using docker-compose to start a set of microservices up for testing on Pipelines.
Please refer to official documentations for more information.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
There is absolutely no mention in the docs about Docker Compose at the time of this writing.
Also, from what I remember the 2 biggest platforms that actually provide support for it (Travis CI and GitLab), both achieve it via some kind of privileged mode. Even Circle CI requires machine executor. So the blog post itself is pretty much contradictory.
Until I see actual working example with docker-compose command, mounted volumes and the like, this so-called "support" may as well not exist.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
We're using docker-compose in our builds. Here you have an explanation on the process.
https://medium.com/magnetcoop/using-docker-compose-in-bitbucket-pipelines-81ead8cf0153
Cheers,
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you very much, Iván Perdomo. This is very useful.
I wish Atlassian documented this properly.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
- step: &integration-test
name: Integration Tests
image: docker/compose:latest
services:
- docker
caches:
- docker
script:
- docker-compose -f docker-compose-integration.yml build
- docker-compose -f docker-compose-integration.yml up
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Is there any update on Bitbucket Pipelines support for docker-compose?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Any advice on how to work without this now? We currently have several images that compose our stack (e.g. web, db, cache)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I get sporadic failures, when I run my docker-compose test. I have seen it quite a few times, when I run the pipeline for the same commit and sometimes it passes, sometimes it fails. In my test I use wait-for-it as described in https://docs.docker.com/compose/startup-order/ and probe the service under test before issuing a request. I have a 15 seconds timeout ATM for booting the service and sometimes I see it failing although in the runs that pass the service is available after 1 second.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For recent docker-compose
Following pipeline file works:
image: docker:stable
options:
docker: true
pipelines:
default:
- step:
script:
- apk add --no-cache py-pip python-dev libffi-dev openssl-dev gcc libc-dev make
- pip install docker-compose
- docker-compose up
- docker-compose down
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi any updates from Atlassian on this?
I already had all my tests set up nicely in Docker Compose and then hit this roadblock of Docker Compose not being supported.
The approach of declaring other services and relying is really primitive compared to what Docker Compose offers out of the box.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Running docker-compose results in: The Docker Engine version is less than the minimum required by Compose.
Your current project requires a Docker Engine of version 1.13.0 or greater. Does this mean that running docker-compose is still not supported or is this a configuration issue. (http://devops.stackexchange.com/q/795/210)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Jean-Mark,
We do not support yet Docker Compose in Bitbucket Pipelines but this is something that we would like to investigate in the future.
Thanks,
Sten
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Sten Pittet,
Is there a way to run multiple containers?
For instance, I have a test suite which depends on Mongo.
Do you know any workaround for running this image with pipelines?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I am also interested in this, as our test suite relies on postgres. If the stock image had access to various databases that would mitigate the issue for me.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Running multiple containers as part of a pipeline is not available yet but we're looking into some options to provide this capability.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.