title: Is git pull, docker-compose build and docker-compose up -d a good way to deploy complete solution on an empty machine
body: <p>Recently, we just finished web application solution using Docker.</p>
  
  <p><a href="https://github.com/yccheok/celery-hello-world/tree/nginx" rel="nofollow noreferrer">https://github.com/yccheok/celery-hello-world/tree/nginx</a> (The actual solution is hosted in private repository. This example just a quick glance on how our project structure looks like)</p>
  
  <p>We plan to purchase 1 empty Linux machine on deploy on it. We might purchase more machines in the future but with current traffic right now, 1 machine will be sufficient.</p>
  
  <p>My plan for deployment on the single empty machine is</p>
  
  <pre><code>git pull &lt;from private code repository&gt;
  docker-compose build
  docker-compose up -d
  </code></pre>
  
  <p>Since we are going to deploy to multiple machines in near future, I was wondering, is this a common practice to deploy docker application into a fresh empty machine?</p>
  
  <p>Is there anything we can utilize from <a href="https://hub.docker.com/" rel="nofollow noreferrer">https://hub.docker.com/</a> , without requiring us to perform <code>git pull</code> during deployment stage? </p>