Setup-ul in momentul de fata e prin vagrant provisionat cu ansible.
Vrem sa modificam si sa facem imagini Docker numai ca deja retele pentru imaginea de DB cat si cea de Webserver sunt facut in ansible.
Am incercat :
FROM ansible/ubuntu14.04-ansible:stable
# Add playbooks to the Docker image
ADD . /var/www/vagrant
WORKDIR /var/www/vagrant
# Run Ansible to configure the Docker image
RUN ansible-playbook web.yml
# Other Dockerfile directives are still valid
EXPOSE 22 3000 80
iar la docker build -t first-test .
Imi da eroare : FATAL: no hosts matched or all hosts have already failed -- aborting
Scăpați de ansible cu docker, nu mai e nevoie de el. Nu folosi ubuntu 14.04, nu ai suport http2 pe chrome din cauza openssl la serverul web.
Alegeți ceva OS și panou pentru deploy-ul stack-urilor, eu recomand Docker Swarm, Rancher (e frumușel și avansat), cel mai simplu ar fi http://portainer.io.
@raluka nu am lucrat cu Ansilbe în docker (eu folosesc docker-compose), dar ce pot să-ti recomand este să comentezi linia cu comanda run ca să treci de build, dupa care să deschizi bash pe container și să rulezi comanda manual (e interactiv și poti să faci debugging să afli de ce crapă): docker exec -it <container> bash
pai deja primele pagini de pe un google search am cam incercat, problema e ca ori imaginea de ubuntu cu ansible e fututa , ca sa ma exprim cu cuvintele mele , si am inecrcat sa fac imaginea de la zero, iar cand rulez retea de ansible pe imaginea aia cica nu am hosts in /etc/ansible/hosts desi il pun acolo si in fisieru de ansible ii dau ala default hosts: all care cica e default … mai incerc poate ceva aliniere a planetelor o sa ma ajute :d :d
si eu folosesc tot docker- compose dar am nevoie acuma de a face o imagine simpla pentru web application care se creea inainte din vagrant file cu reteta de ansible, de aia am reteta de ansible ca nu imi fac containerul si pe urma sa fac un ssh pe el si sa incep sa rulez acolo chestii … atunci nu mai e automatizare … dar te inteleg ce zici
Dispare automizarea, dar procesul asta ar trebui să îl faci doar până îi dai de cap, dupa aia ar trebui să meargă out of the box.
Ca idee, în docker, fiecare container are o singură responsabilitate. Eu pe setup-ul am:
container 1: nginx
container 2: mysql
container 3: php-fpm
container 4: mailhog
Parte de configurare o fac din compose pentru că e mai comod așa. Ansible sau Salt sau alte aplicații de genul sunt mult mai avansate.
Ca idee, eu aș folosi o aplicație de automatizare precum Ansible în afara containerului, pentru ca creea și genera imaginile și pentru a gestiona containerele de care am nevoie (în felul astă nu aș mai avea nevoie de compose).