My Elixir/Phoenix application uses docker-compose and mysql. I decided on CircleCI for continuous-integration (CI) for its free container support. There were a few problems making it all run inside the CircleCI container environment.
CircleCI defaults to a docker version < v1.10.
Since I am using docker-compose locally, I also want to use the same setup
during CI. Docker-compose requires a docker server whose version is greater or
equal to v1.10. I override the existing docker version on the CircleCI container
host through the
Docker-compose is not available on the container host by default.
I need to install docker-compose after installing the required docker version.
MySQL is installed on the container host (port conflict).
My application uses mysql. Docker-compose setup starts mysql on port
3306 port is the default mysql port and conflicts with the mysql-server
installation on the host container. I remove the host’s mysql installation.
I override the
dependencies and pre-
test mappings with
- CircleCI infers the wrong dependencies for my app.
- CircleCI infers the wrong pre-test actions for my app.
My helper script,
bin/app.ci pulls the app dependencies and properly runs