Support data containers in the docker executor


#1

We have a test suite that requires both a command-line tool and a web server. To work correctly, they must both have some shared state on disk. Currently, we run them both in the same container, but this makes the logs difficult to understand. Ideally, we’d run two containers, but this isn’t possible without the machine executor.

Note that I’m not looking for volume mounts from the host, but a data container that for docker would be attached with something like docker -v webapp-data:/var/www/data.


#2

You can install Docker Compose in the Docker executor, and then from there you can do whatever you like! If you want to make a VOLUME in your volume container and then consume it in your docker-compose.yml using volumes_from, that seems to work on Circle (despite the volume mounts difficulty).


#3

Good to know. It looks like if you use the machine executor, you can no longer use the circleci CLI tool locally, which has been really useful to our dev team.


#4

I’ve not used that.

If you do need the machine executor, and want to find why a build failed, consider using the SSH feature to get a shell on a machine containing a failed build. It allows you to do some digging and find why a build failed. Just bear in mind that your SSH time counts towards your build minutes - and sometimes I need to hit “Cancel” in the UI after terminating my SSH session too!


#5