Full-stack javascript development with

+

+

Write a Dockerfile

Write a compose file

Run the app

FROM node:6.4

ENV NPM_CONFIG_LOGLEVEL warn

WORKDIR /code/

COPY npm-shrinkwrap.json .

RUN npm install

COPY . .

EXPOSE 8000

CMD ["npm", "start"]
version: '2'

services:
  api:
    build: .
    command: npm run dev
    ports:
      - '8000:8000'
    volumes:
      - .:/code
      - api-deps:/code/node_modules

volumes:
  api-deps:
$ docker-compose up

2

1

3

$ docker-compose run api npm install cors

Running commands

$ npm install cors
services:
  ...

  test:
    build: .
    command: npm run test -- --watch
    volumes:
      - .:/code
      - api-deps:/code/node_modules
services:
  api:
    ...

    links:
      - db
  db:
    image: 'postgres:latest'
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=pw
    volumes:
      - /db
    expose:
      - 5432
$ brew install dnsmasq

Configuring a .dev domain

# /etc/resolver/dev
nameserver 127.0.0.1
# /usr/local/etc/dnsmasq.conf
address=/dev/127.0.0.1
services:
  api:
    ...

    environment:
      - VIRTUAL_HOST=api.tala.dev

  proxy:
    image: 'dockercloud/haproxy:latest' // jwilder/nginx-proxy
    links:
      - api
    ports:
      - '80:80'
      - '443:443'
      - '1936:1936'
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
// webpack.config.js

entry: {
  app: [
    'webpack/hot/dev-server',
    'webpack-dev-server/client?http://tala.dev',
  ]
}

devServer: {
  host: '0.0.0.0',
},

slides.com/davidblurton

github.com/talaislensku

Made with Slides.com