What is the most simple setup for a MEAN stack docker container to have the same config on OS X and DigitalOcean?

I am playing around with a MEAN javascript project.
(mongoDB + angular + sails.js + node.js)
As I am offline a lot of the time, I’d like to keep my dev environment, running in a docker container, on OS X laptop, using boot2docker.

The ‘production’ (not actual production, just somewhere I deploy to to show it to friends) is a Digital Ocean droplet running Ubuntu as host and hopefully the same docker container.

  • Simultaneous Docker and VirtualBox
  • Docker can't connect to the internet from with proxy
  • can't link nginx with ghost in docker
  • How should I handle Perl module updates when maintaining docker images?
  • Docker Swarm with etcd
  • Why is it needed to set `pam_loginuid` to its `optional` value with docker?
  • I expect that the environment won’t change very often and that I can continue using git push/pull to push just the code changes.

    Do I need anything else other than what I described above?
    Do I need Vagrant, for example to deploy that docker container or is that an overkill?
    Can docker specify all all my needs, that is the right version of node.js, sails etc?
    Is there a ready made container I can reuse or modify rather than starting from scratch?

  • How to include local libraries in build?
  • How can I use XDebug with a PHP upstream behind an nginx reverse proxy?
  • how to do docker-compose pip install with a proxy?
  • How to create a docker cluster with MQ without Kubernetes
  • docker autobuild with git private submodule
  • Docker container network failed Occasionally
  • One Solution collect form web for “What is the most simple setup for a MEAN stack docker container to have the same config on OS X and DigitalOcean?”

    Answers to your questions:

    Do I need anything else other than what I described above?

    What you described sounds very reasonable. But keep in mind that you don’t want to use one docker container, but rather one container per service. That means: one container running mongo, one container running node, and so on. That is a Docker best practice.

    Do I need Vagrant, for example to deploy that docker container or is that an overkill?

    It sounds like your rather simple setup does not require Vagrant. You can use Dockerfiles to build images that have everything you need installed. See the Dockerfile Reference and Dockerfile best Practices.

    Can docker specify all my needs, that is the right version of node.js, sails etc?

    Yes, every Docker image has a certain version of the service that will run inside the container. That’s one of the points of using containers.

    Is there a ready made container I can reuse or modify rather than starting from scratch?

    Yes, there are many ready made containers to be found on the Docker Hub. Use these images as a base when writing your Dockerfiles to install anything additionally to what is supplied within the image on Docker Hub.

    Also, check out Volumes to figure out how to handle source code in development.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.