New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

moldock

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

moldock

a cli tool to breakdown moleculer projects and dockerize them individually

  • 1.0.0-beta
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Moleculer logo

moldock (Moleculer Dockerized)

A CLI tool to deconstruct moleculer projects into their own dependant projects, to be able to dockerize them individually

☠ The Problem

Moleculer structures all it's services in a services folder as follows:

Project
├───services
│     ├───api.service.js
│     ├───greeter.service.js
│     └───otherService.service.js
├───etc

When you try to dockerize the services, it creates an image with all the dependencies of all the services and copies all the services in that image. So if you want the API service to be in it's individual container, everything for all the other services will be copied. Also you will have to create an individual docker-compose.yml

That causes a lot of manual work and a bloated docker image

🎉The Solution

moldock:

moleculer-dockerized or moldock for short takes the project and asks you what packages are needed for each service. It then creates a folder with all the services as their own projects with their corrosponding package.json, Dockerfile, docker-compose.yml, docker-compose.env

It creates a new directory one level up from where the project is and appends -moldock to the directory. This directory will contain all the destructured services in their respective folders. Each service folder will be a combination of the name of the project and the name of the service like so project-service

Project-moldock
├───Project-api
│     ├───services
│     │      └───api.service.js
│     ├───Dockerfile
│     ├───docker-compose.yml
│     ├───docker-compose.env
│     ├───package.json
│     └───etc
├───Project-greeter
│     ├───services
│     │      └───greeter.service.js
│     ├───Dockerfile
│     ├───docker-compose.yml
│     ├───docker-compose.env
│     ├───package.json
│     └───etc
├───Project-otherService
│     ├───services
│     │      └───otherService.service.js
│     ├───Dockerfile
│     ├───docker-compose.yml
│     ├───docker-compose.env
│     ├───package.json
│     └───etc
├───etc

🤷‍♂️Assumptions

  1. You don't want to copy these folders:

    • node_modules
    • test
    • tests
    • .vscode
    • data
    • db
    • .git
  2. You have a docker hub account

  3. You want to copy everything in the project to each service

  4. Your services are in a services folder named <service name>.service.js

🔻Installation

npm i -g moldock

🖥Usage

  1. Change directory to the moleculer project
  2. Run moldock --dockerUser <your docker user>
  3. Select the dependecies of each service
  4. Profit

🛣Roadmap

  • Auto infer required modules and select them by default
  • Add a flag to auto build docker image
  • Add a flag to auto push docker image
  • Remove --dockUser and auto capture it from system
  • Add an option for main folder append string
  • Use chalk and boxed to make it look pretty

Keywords

FAQs

Package last updated on 25 Jul 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc