Node.js

Exemplos de criação de uma aplicação Node.js:

Utilizando o npm init

Criando o package.json

$ mkdir <my-app>
$ cd <my-app>
$ azk shell --image azukiapp/node --shell /bin/bash
# npm init //follow the instructions afterwards
# exit

Gerando o Azkfile.js

$ azk init

Utilizando o módulo express-generator

Criando o projeto

$ azk shell --image azukiapp/node --shell /bin/bash
# npm install -g express-generator
# express <my-app>
# exit

Gerando o Azkfile.js

$ cd <my-app>
$ azk init

Rodando a aplicação

Para iniciar o ambiente de desenvolvimento

$ azk start -o && azk logs --follow

Exemplos

Node com Mongodb

// Adds the systems that shape your system
systems({
  'my-node-app': {
    depends: ['mongodb'],
    image: {'docker': 'azukiapp/node'},
    provision: [
      'npm install',
    ],
    workdir: '/azk/#{manifest.dir}',
    shell: '/bin/bash',
    command: ['npm', 'start'],
    wait: {'retry': 20, 'timeout': 1000},
    mounts: {
      '/azk/#{manifest.dir}': path('.'),
    },
    scalable: {'default': 1},
    http: {
      domains: [ '#{system.name}.#{azk.default_domain}' ]
    },
    ports: {
      http: '8000'
    },
    envs: {
      NODE_ENV: 'dev',
      NODE_PORT: '8000'
    },
  },

  'mongodb': {
    image : { docker: 'azukiapp/mongodb' },
    scalable: false,
    wait: {'retry': 20, 'timeout': 1000},
    mounts: {
      '/data/db': persistent('mongodb-#{manifest.dir}'),
    },
    ports: {
      http: '28017:28017/tcp',
    },
    http: {
      domains: [ '#{manifest.dir}-#{system.name}.#{azk.default_domain}' ],
    },
    export_envs: {
      MONGODB_URI: 'mongodb://#{net.host}:#{net.port[27017]}/#{manifest.dir}_development',
    },
  },
});