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.

  • manage.py collectstatic: error: unrecognized arguments: --noinput in shell script launched by Docker
  • Google push-to-deploy jenkins image fails after reboot
  • docker ubuntu /bin/sh: 1: locale-gen: not found
  • postgres table does not exist from using docker-compose
  • Virtualize Kickstart Server
  • Application Isolation with Linux Containers?
  • 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?

  • Kamon, Statsd, Grafana Disk Space
  • Keep gitlab build running after build
  • Docker Container Creation - mapping from CLI
  • Run a docker hub container on bluemix without crashing (No valid host was found)
  • Confusion while deploying docker-composer image
  • Improve performance of NGINX Server on a Worker Node
  • 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.