How to deploy an application using Docker

I have a node.js application which depends on phantom.js. Since both node and phantom.js are not exactly a breeze to set up, I created a Docker container which does this.
Now how do I deploy updates of my application to this docker container running on our production server.

For me, there are two possibilities.

  • PhpStorm 2017.1 remote php-cli in docker: Configuration php.ini file does not exist
  • Why am I getting this Nginx error about “No such file or directory”?
  • Running Appscale on Jelastic
  • How to configure an application in openshift via a REST endpoint?
  • How can i run java applications in docker using apache or tomcat server
  • How to add custom host entries to kubernetes Pods?
    1. Set up SSH and push my git repository directly into the Docker container
    2. Add a volume and update the repository outside the container

    I tend to the latter, but I’m not sure there is a better way.

    Thanks in advance!

  • Laravel 5 is not reading mysql connection (docker) ubuntu
  • what about the docker image if a container is crashed?
  • Nginx & Node inside the same Docker container
  • Using remote byebug instance with docker-compose
  • Running Docker container randomly disappears on AWS EC2 Ubuntu
  • How to create flexible onbuild docker image that uses env vars?
  • One Solution collect form web for “How to deploy an application using Docker”

    both ways would allow you to update your application in an existing container.

    However what happens if you delete your container?

    • in the second way you can recreate a brand new container linked to the same volume that holds your app
    • in the first way you would have to also connect to ssh and upload the app code

    Moreover the Dockerfile will be more complicated in the first case and more difficult to maintain. You will also have to take care of security issues and make sure the whole world won’t be able to connect to the ssh server.

    To sum up, make it KISS and go the volume way. Only consider adding a ssh service if you need it for more than just pushing files.

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