Giter VIP home page Giter VIP logo

node-docker-api's Introduction

Developing and Testing Microservices with Docker

Build Status

Want to learn how to build this project?

Check out the blog post.

Want to use this project?

Setup

  1. Fork/Clone this repo

  2. Download Docker (if necessary)

  3. Make sure you are using a Docker version >= 17:

    $ docker -v
    Docker version 17.03.0-ce, build 60ccb22

Build and Run the App

Set the Environment variables

$ export NODE_ENV=development

Register with the OpenWeatherMap API, and add the key as an environment variable:

$ export OPENWEATHERMAP_API_KEY=YOUR_KEY_HERE

Fire up the Containers

Build the images:

$ docker-compose build

Run the containers:

$ docker-compose up -d

Migrate and Seed

With the apps up, run:

$ sh migrate.sh

Sanity Check

Test out the following services...

Endpoint HTTP Method CRUD Method Result
/users/ping GET READ pong
/users/register POST CREATE add a user
/users/login POST CREATE log in a user
/users/user GET READ get user info
(2) Locations - http://localhost:3001
Endpoint HTTP Method CRUD Method Result
/locations/ping GET READ pong
/locations GET READ get all locations
/locations/user GET READ get all locations by user
/locations/:id GET READ get a single location
/locations POST CREATE add a single location
/locations/:id PUT UPDATE update a single location
/locations/:id DELETE DELETE delete a single location
Endpoint HTTP Method CRUD Method Result
/ GET READ render main page
/login GET READ render login page
/login POST CREATE log in a user
/register GET READ render register page
/register POST CREATE register a new user
/logout GET READ log a user out
/add POST CREATE add a new location
/user GET READ get user info
(4) Locations Database and (5) Users Database

To access, get the container id from docker ps and then open psql:

$ docker exec -ti <container-id> psql -U postgres
(6) Functional Tests

With the app running, update the NODE_ENV environment variable and then run the tests:

$ export NODE_ENV=test
$ docker-compose up -d
$ docker-compose run tests npm test

Update NODE_ENV when you're ready to develop again:

$ export NODE_ENV=development
$ docker-compose up -d

Commands

To stop the containers:

$ docker-compose stop

To bring down the containers:

$ docker-compose down

Want to force a build?

$ docker-compose build --no-cache

Remove images:

$ docker rmi $(docker images -q)

Run unit and integration tests:

$ export NODE_ENV=test
$ docker-compose up -d
$ docker-compose run users-service npm test
$ docker-compose run locations-service npm test

node-docker-api's People

Contributors

mjhea0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

node-docker-api's Issues

docker-compose-test.yml does not exist

The end of readme.md reads:


Run unit and integration tests:

$ export NODE_ENV=test
$ docker-compose up -d
$ docker-compose -f docker-compose-test.yml run users-service npm test
$ docker-compose -f docker-compose-test.yml run locations-service npm test

Running either of the last two commands results in a file not found error as docker-compose-test.yml does not exist.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.