Cómo a CI con Travis, Codedeploy y Dockerized Database

Actualmente estoy desarrollando un proyecto node.js basado en docker-compose , que maneja la aplicación en sí y una database mongo . En la database hay un usuario inicial almacenado.

Tengo una idea de cómo debería funcionar inicialmente:

  1. publicar repo incl. los datos iniciales de DB en github
  2. desencadenando la testing de travis ci / pelusa
  3. desencadenando codedeploy para implementar en la instancia de ec2
  4. ejecuta el command de compilation y ejecuta docker-compose up

Ahora la aplicación debe estar en línea. Mientras que el modo de producción, la database obtiene más datos. Cuando vuelva a presionar para masterizar, debería desplegarse nuevamente, pero no debe anular los datos en vivo con los datos iniciales en github. Actualmente todo el process funciona pero aún anula los datos. Ejecuté el siguiente command tanto en la máquina local como remota, pero sin éxito:

cd ./data && git ls-files | tr '\n' ' ' | xargs git update-index --assume-unchanged

Pensé que codedeploy simplemente extrae la twig principal actual pero ignora el directory ./data debido al command anterior y al file .gitignore . Pero no parece así.

Entonces, ¿hay algo que se haya perdido hasta ahora? Espero que tengas algunos consejos e ideas sobre cómo resolver este problema.

¡¡Muchas gracias!!
ps siguiendo cierta información y extractos del file.


Detalles del sistema

  • Ubuntu 14.04.4 LTS
  • nodo: v6.9.1
  • npm: 3.10.8
  • acoplador: 1.12.3
  • docker-componer: 1.8.1
  • git: 1.91

Estructura de file

 config/ # Some config files data/ # The database its directory src/ # The source files .gitignore .travis.yml appspec.yml docker-compose.yml 

Aquí hay algunos extractos de files:

.gitignore

 data/* 

.travis.yml

 language: node_js sudo: requinetworking dist: trusty node_js: - 6 before_script: - npm install script: - npm run lint branches: only: - master deploy: provider: codedeploy wait-until-deployed: true access_key_id: 'mykeyid' secret_access_key: 'myaccesskey' application: appname deployment_group: grpname region: eu-central-1 

appspec.yml

 version: 0.0 os: linux files: - source: / destination: /home/ubuntu/app permissions: - object: / pattern: "**" owner: ubuntu 

docker-compose.yml

 version: '2' services: server: image: node:6 command: 'npm run go' working_dir: '/app' volumes: - ./:/app depends_on: - mongo ports: - '1337:1337' environment: - NODE_ENV=prod links: - mongo:mongodb mongo: image: mongo:latest ports: - '127.0.0.1:27017:27017' volumes: - ./data/:/data/db