How to Use Devicemapper Docker Filesystem Backends in Travis CI?

Valeriy Solovyov

I have some problems with Travis CI because of https://github.com/docker/docker/issues/6980.

I found solution - add this in /etc/default/docker:

DOCKER_OPTS="--storage-driver=devicemapper"

So I tried to modify Docker setting to use another storage driver in .travis.yml:

before_install:
  - sudo ps -A|grep docker
  - sudo service docker stop
  - sudo ps -A
  - sudo echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null
  #- sudo echo 'DOCKER_OPTS="-s devicemapper"' | sudo tee /etc/default/docker > /dev/null
  - sudo cat /etc/default/docker
  - sudo service docker start
  - sudo ps -A|grep docker
  #- sudo service docker restart
  - sudo docker pull centos:7

But it failed. When I use:

- sudo echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null

I got an error https://travis-ci.org/weldpua2008/ansible-apache/jobs/82684013:

Post http:///var/run/docker.sock/v1.19/images/create?fromImage=weldpua2008%2Fdocker-ansible%3Acentos6_v1.9.2: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

and when I tried:

 - sudo echo 'DOCKER_OPTS="-s devicemapper"' | sudo tee /etc/default/docker > /dev/null

I got https://travis-ci.org/weldpua2008/ansible-apache/jobs/82685316 an error:

Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
Valeriy Solovyov

Because of Travis CI Docker bug there is way to use new version of Docker. Thank to Dominic Jodoin from Travis CI team. .travis.yml:

sudo: required
env:
  #matrix:
  - OS_TYPE=centos OS_VERSION=6 ANSIBLE_VERSION=1.9.2

branches:
  only:
  - master
#  - stable

services:
  - docker

before_install:
  - sudo apt-get update
  - sudo apt-get upgrade lxc-docker
  - echo 'DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock -s devicemapper"' | sudo tee /etc/default/docker > /dev/null
  - sudo service docker restart
  - sleep 5
  - sudo docker pull weldpua2008/docker-ansible:${OS_TYPE}${OS_VERSION}_v${ANSIBLE_VERSION}

script:
 # Run tests in Container
 - sudo docker run --rm=true -v `pwd`:/ansible-apache:rw weldpua2008/docker-ansible:${OS_TYPE}${OS_VERSION}_v${ANSIBLE_VERSION} /bin/bash -c "/ansible-apache/tests/test-in-docker-image.sh ${OS_TYPE} ${OS_VERSION} ${ANSIBLE_VERSION}"

notifications:
  email: false

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related