Software development is like playing Lego, you make some "brick" that you will use in multiple projects.

For example, Project 1, web-server using PHP and MySQL:

  • configure Apache
  • configure PHP
  • configure MySQL

Project 2, SSH connection for SFTP access:

  • configure SSH server
  • configure SSH client

Project 3, SSL connection for encrypted web server:

  • Project 1
  • Project 2 (just server part)
  • configure Apache for SSL

Project 4, webcam streaming on secured WAN:

  • Project 3
  • configure webcam streaming

As we can see, some projects become "bricks" for other projects. Some bricks are re-used by other projects and so on.

So I'm searching for a software that allows me to link projects and bricks together and with chance, offer a graphical representation (like a tree-view, octopus-view).

1 Answer 1


Take a look at Docker.

The platform is not mentioned. Since PHP, Apache, MySQL, SSH was mentioned, it seem reasonable to assume Linux.

With Docker, you can build your own "brick" or take "brick" that others had build from Docker Hub and put them together. Docker calls these "brick" image. You can learn how to create your own image. The steps to create the images can be defined in a Dockerfile

For example,

Project 1 :

Someone had built a PHP + Apache + MySQL image. or you can use Dockerfile to define the steps yourself.

Project 2:

One way is you can use your Dockerfile from Project 1 and use FROM to reuse the steps in Project 1 to create an image for Project 2.

Project 3:

Since you want only the server part, you might consider to write your Project 2 into 2 parts so that the server part can be used here.

Project 4:

Use FROM project3 in Dockerfile use Project 3 and add some instruction to configure webcam streaming

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.