I woud like to use Ansible
to deploy one of my project (let's call it project-to-deploy
).
project-to-deploy
can be run locally using a docker-compose.yml
file, which, among other things, mount the following volumes inside the docker-container
.
version: "2"
services:
database:
image: mysql:5.6
volumes:
- ./docker/mysql.init.d:/docker-entrypoint-initdb.d
messages:
image: private.repo/project-to-deploy:latest
Nothing more useful here. To run the project: docker-compose up
.
I have created a docker image
of the project (in which I copy all the files from the project to the newly created docker image
), and uploaded it to private.repo/project-to-deploy:latest
.
Now comes the Ansible part.
For the project to run, I need:
- The docker image
- A MySQL instance (see part of my
docker-compose.yml
below)
In my docker-compose.yml
(above), it is quite easy to do so. I just create the 2 services (database and project-to-deploy
) and link them each-other.
How can I perform such action in Ansible
?
First things I did is to fetch the image:
- name: Docker - pull project image
docker:
image: "private.repo/project-to-deploy:latest"
state: restarted
pull: always
Then, how can I link the MySQL docker image to this, knowing that the MySQL docker image need files from project-to-deploy
?
If you think of another way to do it, feel free to make suggestions !