First of all, I am new to Docker. (installed it yesterday for the first time)
I have some questions about how Docker is used in practice. Let me first describe how software is currently developed and deployed in our company:
Software is developed on a development machine and then committed to a branch in SVN.
The developer than notifies an administrator that a new software package is available and that it should be tested.
The administrator then logs onto a test-maschine and types in “svn co svn.mycompany.com/project/branches/awesome-new-feature”.
Besides that the administrator also creates cache-directories, installs php modules etc. There’s is much more to it but you get the point.
My first questions are:
a) Am I, as a developer, responsible for creating a new Dockerfile for every (project, version) that is meant to be deployed? (this includes to tag it such as “project1:my-awesome-feature”)
b) Should the Dockerfile checkout the source code using the RUN command or should the source code be copied from the context?
c) We have around 50 web applications in our company. Is it best practise to include the apt-get install -y apache2 subversion instruction in every Dockerfile or should I create a base image that is used by all web applications?
Thank you in advance.