2

I'm really struggling to grasp the workflow of Docker. The issue is: where exactly are the deliverables?
One would expect the developers image to be the same one as the one used for testing, production.

But how can one develop use auto-reload and such(probably by some shared volumes) without building the image again and again?
The image for testers should be just fire and you are ready to go. How are the images split?

I heard something about data-container which holds probably the app deliverables. So does it mean that I will have one container for DB, one for App. Server and one versioned image for my code itself?

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
Zveratko
  • 2,663
  • 6
  • 35
  • 64

1 Answers1

1

The issue is ,where exactly are the deliverables.

  • static deliverables (which never changes) are directly copied in the image.
  • dynamic deliverables (which are generated during a docker run session, or which are updated) are in volumes (either host mounted volume or data container volume), in order to have persistence across container life-cycle.

does it mean that I will have one container for DB, one for App.

Yes, in addition of your application container (which is what docker primarily is: it puts applications in container), you would have data container in order to isolate the data that needs persistence.

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
  • If I will need to update DB I will create new version of DB container, the same for data container with deployable content. What if I would like more application running. The docker file for App server is set, but I need different ports so I will create different docker file? Or is it more concise to use Vagrant , separate the environment and use the same app server image on another vagrant VM? I'm not sure how the setup for testing should look like, I will probably send them ids of all containers that they should pull and start, right? – Zveratko May 04 '15 at 13:20