Im running the conveyor on the jenkins, which is inside the docker container. This pipeline calls another docker layout file that runs an unoccupied workbook. The service that runs the playbook is called an agent and is defined as follows:
agent: image: pjestrada/ansible links: - db environment: PROBE_HOST: "db" PROBE_PORT: "3306" command: ["probe.yml"]
these are the images he uses:
FROM ubuntu:trusty MAINTAINER Pablo Estrada < pjestradac@gmail.com > # Prevent dpkg errors ENV TERM=x-term-256color RUN sed -i "s/http:\/\/archive./http:\/\/nz.archive./g" /etc/apt/sources.list #Install ansible RUN apt-get update -qy && \ apt-get install -qy software-properties-common && \ apt-add-repository -y ppa:ansible/ansible && \ apt-get update -qy && \ apt-get install -qy ansible # Copy baked in playbooks COPY ansible /ansible # Add voulme for Ansible Playbooks Volume /ansible WORKDIR /ansible RUN chmod +x / #Entrypoint ENTRYPOINT ["ansible-playbook"] CMD ["site.yml"]
My local machine is Ubuntu 16.04, and when I run docker-compose up agent , plabook is successful. However, when Im inside the jenkins container im gets this error on the same command call.
Attaching to todobackend9dev_agent_1 [36magent_1 | [0mERROR! the playbook: site.yml does not appear to be a file
These are the images and compound files for my jenkins container:
FROM jenkins:1.642.1 MAINTAINER Pablo Estrada < pjestradac@gmail.com > # Suppress apt installation warnings ENV DEBIAN_FRONTEND=noninteractive # Change to root user USER root # Used to set the docker group ID # Set to 497 by default, which is the group ID used by AWS Linux ECS Instance ARG DOCKER_GID=497 # Create Docker Group with GID # Set default value of 497 if DOCKER_GID set to blank string by Docker Compose RUN groupadd -g ${DOCKER_GID:-497} docker # Used to control Docker and Docker Compose versions installed # NOTE: As of February 2016, AWS Linux ECS only supports Docker 1.9.1 ARG DOCKER_ENGINE=1.10.2 ARG DOCKER_COMPOSE=1.6.2 # Install base packages RUN apt-get update -y && \ apt-get install apt-transport-https curl python-dev python-setuptools gcc make libssl-dev -y && \ easy_install pip # Install Docker Engine RUN apt-key adv --keyserver hkp:
Compose file:
version: '2' volumes: jenkins_home: external: true services: jenkins: build: context: . args: DOCKER_GID: ${DOCKER_GID} DOCKER_ENGINE: ${DOCKER_ENGINE} DOCKER_COMPOSE: ${DOCKER_COMPOSE} volumes: - jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock ports: - "8080:8080"
I put the volume to access the docker socket from the jenkins container. However, for some reason I canβt access the site.yml file that I need for the tutorial, although this file is available outside the container.
Can someone help me solve this problem?