plus.garden.fixtures.docker-compose

0.0.3 • Public • Published

Plus Garden docker fixtures provider

In simple words it re-creates docker box with fresh services. Main idea of this to integrate plus.garden to exist project with big data sets. Sometimes it is pretty complex to build fixtures for exists project. docker-compose fixtures can help here.

Requirements

  • plus.garden
  • docker
  • docker-compose

Installation

  • npm install plus.garden.fixtures.docker-compose --save
  • add module to your container.js garden project

[your-folder]/container.js

module.exports = function (container) {
    container.register('DockerComposeFixturesModule', require('plus.garden.fixtures.docker-compose'));
}
  • add configuration to your

[your folder]/config.json

{
  "fixtures-docker-compose": {
    "compose": "fixtures/docker-compose/docker-compose.yml",
    "autoSudo": true,
    "sudo": false
  }
}

fixtures looks like this, this is example with fresh mongodb:

fixtures/docker-compose floder has 2 files:

  • docker-compose.yml
  • Dockerfile

fixtures/docker-compose/docker-compose.yml

fixtures:
  build: ./
  command: "mongod --smallfiles"
  ports:
    - "17017:27017" #host:service

it publishes port for fresh version of mongodb on your host

fixtures/docker-compose/Dockerfile

FROM ubuntu:precise

RUN mkdir /project
WORKDIR /project

# common
RUN apt-get update
RUN apt-get install -y build-essential python-software-properties git

#mongo
RUN apt-get install -y mongodb
RUN mkdir -p /data/db/

RUN echo "version 0.0.3"
ADD ./dump /dump

RUN (mongod --smallfiles &) && sleep 15 && cd / && mongorestore

Dockerfile builds your image with services.

This integrated with plus.garden to have fresh fixtures/datasets of your DB or other services.

When you use garden CLI

./garden.js fixtures.load
./garden.js fixtures.drop

it drops or creates docker container(s) to support your app with fresh datasets and services. take a look plus.garden bdd framework for more details.

if you need debug loading fixtures just add flag --debug like: ./garden.js fixtures.load --debug it should print additional info about process.

Have a fun!

Package Sidebar

Install

npm i plus.garden.fixtures.docker-compose

Weekly Downloads

0

Version

0.0.3

License

ISC

Last publish

Collaborators

  • slava.hatnuke