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.

  • Cannot access Centos sshd on Docker
  • Docker-Machine commands timeout TLS handshake but Dock Swarmer working ok
  • Bash script wait depended commands processes
  • How to install a pip package locally in Dockerfile?
  • 'docker-compose pull' can't pull image that is pullable by 'docker'
  • Running multi-node kubernetes using docker
    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!

  • My build does not include my web site directive
  • How to get ssh connection with docker container on OSX(boot2docker)
  • Cannot copy files from docker to tmp of host using docker-compose
  • How to run sql script for postgres in docker
  • Issues with proxy in Gitlab CI using Docker runner
  • Modify Docker Image
  • 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.