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.

  • Proper workflow for web development with Docker
  • Shared, ephemeral read-only Docker volume
  • Links apps in Docker Swarm Mode
  • docker-compose build throwing error ERROR: Untar re-exec error: signal: killed: output:
  • Connect CI Runner to Docker network
  • Execute command in linked docker container
  • 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?

  • Docker - how to add new python dependencies to the existing docker image?
  • Download all dependencies, plugin dependencies, compilers, etc. with Maven?
  • Could not locate Gemfile error by docker compose up
  • How can I make actual image files persistent in file upload process running with docker?
  • Docker tcp lookup fails
  • Docker: Cannot pull an image that was pushed to a private registry
  • 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.