Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
Deleted user
Level
0 / 0 points
Next:
badges earned

Your Points Tracker
Challenges
Leaderboard
  • Global
  • Feed

Badge for your thoughts?

You're enrolled in our new beta rewards program. Join our group to get the inside scoop and share your feedback.

Join group
Recognition
Give the gift of kudos
You have 0 kudos available to give
Who do you want to recognize?
Why do you want to recognize them?
Kudos
Great job appreciating your peers!
Check back soon to give more kudos.

Past Kudos Given
No kudos given
You haven't given any kudos yet. Share the love above and you'll see it here.

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Docker-compose and pipelines

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?

11 answers

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. 

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.

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.

Like VictorUsoro likes this

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,

Like # people like this

Thank you very much, Iván Perdomo. This is very useful.

I wish Atlassian documented this properly.

Is there any update on Bitbucket Pipelines support for docker-compose?

- 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

Any advice on how to work without this now? We currently have several images that compose our stack (e.g. web, db, cache)

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

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?

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. 

Running multiple containers as part of a pipeline is not available yet but we're looking into some options to provide this capability.

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)

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.

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

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.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Bitbucket

Calling any interview participants for Bitbucket Data Center

Hi everyone,  We are looking to learn more about development teams’ workflows and pain points, especially around DevOps, integrations, administration, scale, security, and the related challeng...

487 views 5 4
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you