diff --git a/README.md b/README.md
index 3db76e1d276fd0bc012f5cc33bb70d8ae936a90c..f57b23c7d16054049e6945273c029b25264f3fab 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
 
 This microservices branch was initially derived from [AngularJS version](https://github.com/spring-petclinic/spring-petclinic-angular1) to demonstrate how to split sample Spring application into [microservices](http://www.martinfowler.com/articles/microservices.html). To achieve that goal we used [Spring Cloud Netflix](https://github.com/spring-cloud/spring-cloud-netflix) technology stack.
 
-## Starting services locally
+## Starting services locally without Docker
 Every microservice is a Spring Boot application and can be started locally using IDE or `mvn spring-boot:run` command. Please note that supporting services (Config and Discovery Server) must be started before any other application (Customers, Vets, Visits and API). Tracing server startup is optional.
 If everything goes well, you can access the following services at given location:
 * Discovery Server - http://localhost:8761
@@ -15,6 +15,14 @@ You can tell Config Server to use your local Git repository by using `local` Spr
 `GIT_REPO` environment variable, for example:
 `-Dspring.profiles.active=local -DGIT_REPO=/projects/spring-petclinic-microservices-config`
 
+## Starting services locally with docker-compose
+In order to start entire infrastructure using Docker, you have to build images by executing `mvn clean install -PbuildDocker` 
+from a project root. Once images are ready, you can start them with a single command
+`docker-compose up`. Containers startup order is coordinated with [`wait-for-it.sh` script](https://github.com/vishnubob/wait-for-it). 
+After starting services it takes a while for API Gateway to be in sync with service registry,
+so don't be scared of initial Zuul timeouts. You can track services availability using Eureka dashboard
+available by default at http://localhost:8761.
+
 ## Understanding the Spring Petclinic application with a few diagrams
 <a href="https://speakerdeck.com/michaelisvy/spring-petclinic-sample-application">See the presentation here</a>
 
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e9263b80596960e6256487eb1e01009cfc925a3e
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,86 @@
+version: '2'
+services:
+  config-server:
+    image: mszarlinski/spring-petclinic-config-server
+    container_name: config-server
+    ports:
+     - 8888:8888
+
+  discovery-server:
+    image: mszarlinski/spring-petclinic-discovery-server
+    container_name: discovery-server
+    links:
+     - config-server
+    depends_on:
+      - config-server
+    entrypoint: ["./wait-for-it.sh","config-server:8888","--timeout=60","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
+    ports:
+     - 8761:8761
+
+  customers-service:
+    image: mszarlinski/spring-petclinic-customers-service
+    container_name: customers-service
+    links:
+     - config-server
+     - discovery-server
+    depends_on:
+     - config-server
+     - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
+    ports:
+    - 8081:8081
+
+  visits-service:
+    image: mszarlinski/spring-petclinic-visits-service
+    container_name: visits-service
+    links:
+     - config-server
+     - discovery-server
+    depends_on:
+     - config-server
+     - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
+    ports:
+     - 8082:8082
+
+  vets-service:
+    image: mszarlinski/spring-petclinic-vets-service
+    container_name: vets-service
+    links:
+     - config-server
+     - discovery-server
+    depends_on:
+     - config-server
+     - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
+    ports:
+     - 8083:8083
+
+  api-gateway:
+    image: mszarlinski/spring-petclinic-api-gateway
+    container_name: api-gateway
+    links:
+     - config-server
+     - discovery-server
+     - customers-service
+     - visits-service
+     - vets-service
+    depends_on:
+     - config-server
+     - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
+    ports:
+     - 8080:8080
+
+  tracing-server:
+    image: mszarlinski/spring-petclinic-tracing-server
+    container_name: tracing-server
+    links:
+     - config-server
+     - discovery-server
+    depends_on:
+     - config-server
+     - discovery-server
+    entrypoint: ["./wait-for-it.sh","discovery-server:8761","--timeout=60","--","java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
+    ports:
+     - 9411:9411
diff --git a/pom.xml b/pom.xml
index 50d5f0e0d9363344d85fcb9feb0f460a2316e163..37e9f2a775b18e7313ef29415519bffcc3947819 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,9 @@
         <assertj.version>3.5.2</assertj.version>
         <spring-cloud.version>Camden.SR1</spring-cloud.version>
         <java.version>1.8</java.version>
+
+		<docker.image.prefix>mszarlinski</docker.image.prefix>
+		<docker.plugin.version>0.4.13</docker.plugin.version>
     </properties>
 
 	<dependencyManagement>
diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml
index c5af34a76d13f3410e73d8808a43d87a7addd72e..9c470cf32a796df80394abdb96097efa0d784571 100644
--- a/spring-petclinic-api-gateway/pom.xml
+++ b/spring-petclinic-api-gateway/pom.xml
@@ -82,7 +82,6 @@
     </dependencies>
 
     <build>
-        <finalName>petclinic</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
@@ -127,31 +126,43 @@
                     </generateGitPropertiesFilename>
                 </configuration>
             </plugin>
-
-            <plugin>
-                <groupId>com.spotify</groupId>
-                <artifactId>docker-maven-plugin</artifactId>
-                <version>0.4.13</version>
-                <configuration>
-                    <imageName>${docker.image.prefix}/springboot-petclinic</imageName>
-                    <dockerDirectory>src/main/docker</dockerDirectory>
-                    <resources>
-                        <resource>
-                            <targetPath>/</targetPath>
-                            <directory>${project.build.directory}</directory>
-                            <include>${project.build.finalName}.jar</include>
-                        </resource>
-                    </resources>
-                    <forceTags>true</forceTags>
-                    <imageTags>
-                        <imageTag>${project.version}</imageTag>
-                        <imageTag>latest</imageTag>
-                    </imageTags>
-                    <useConfigFile>true</useConfigFile>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 
-
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>${docker.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                            <resources>
+                                <resource>
+                                    <targetPath>/</targetPath>
+                                    <directory>${project.build.directory}</directory>
+                                    <include>${project.build.finalName}.jar</include>
+                                </resource>
+                            </resources>
+                            <buildArgs>
+                                <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-api-gateway/src/main/docker/Dockerfile b/spring-petclinic-api-gateway/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6a0e3ea771dac854dfce3d8d72171db1f21d8f66
--- /dev/null
+++ b/spring-petclinic-api-gateway/src/main/docker/Dockerfile
@@ -0,0 +1,10 @@
+FROM java:8
+VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+ENV SPRING_PROFILES_ACTIVE docker
+RUN bash -c 'touch /app.jar'
+EXPOSE 8081
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml
index 42caccbdb34d36257aecf55d51892b35db957d34..f4cc782f9e7c9a4a1fd56ec00f28be07cdc8f1c5 100644
--- a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml
+++ b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml
@@ -4,3 +4,9 @@ spring:
       uri: http://localhost:8888
   application:
     name: api-gateway
+---
+spring:
+  profiles: docker
+  cloud:
+    config:
+      uri: http://config-server:8888
diff --git a/spring-petclinic-config-server/pom.xml b/spring-petclinic-config-server/pom.xml
index 408166c1e996cc8de9d14c779241d98cbb12d64d..acddeeb266cd097073f64be7d037d6897050de49 100644
--- a/spring-petclinic-config-server/pom.xml
+++ b/spring-petclinic-config-server/pom.xml
@@ -40,5 +40,40 @@
 		</plugins>
 	</build>
 
-
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>${docker.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                            <resources>
+                                <resource>
+                                    <targetPath>/</targetPath>
+                                    <directory>${project.build.directory}</directory>
+                                    <include>${project.build.finalName}.jar</include>
+                                </resource>
+                            </resources>
+                            <buildArgs>
+                                <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-config-server/src/main/docker/Dockerfile b/spring-petclinic-config-server/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..5c1c7f44ed4eb08704eaad7d5be7252fab7b5682
--- /dev/null
+++ b/spring-petclinic-config-server/src/main/docker/Dockerfile
@@ -0,0 +1,7 @@
+FROM java:8
+VOLUME /tmp
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+RUN bash -c 'touch /app.jar'
+EXPOSE 8888
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml
index 3ede011a491950d035a3ec0a710bc5687f6c7fde..b1f1f655f2eb127557247ec350e52ce342208e35 100644
--- a/spring-petclinic-customers-service/pom.xml
+++ b/spring-petclinic-customers-service/pom.xml
@@ -91,5 +91,40 @@
 		</plugins>
 	</build>
 
-
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>${docker.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                            <resources>
+                                <resource>
+                                    <targetPath>/</targetPath>
+                                    <directory>${project.build.directory}</directory>
+                                    <include>${project.build.finalName}.jar</include>
+                                </resource>
+                            </resources>
+                            <buildArgs>
+                                <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-customers-service/src/main/docker/Dockerfile b/spring-petclinic-customers-service/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6a0e3ea771dac854dfce3d8d72171db1f21d8f66
--- /dev/null
+++ b/spring-petclinic-customers-service/src/main/docker/Dockerfile
@@ -0,0 +1,10 @@
+FROM java:8
+VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+ENV SPRING_PROFILES_ACTIVE docker
+RUN bash -c 'touch /app.jar'
+EXPOSE 8081
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-customers-service/src/main/resources/bootstrap.yml b/spring-petclinic-customers-service/src/main/resources/bootstrap.yml
index 9744623645e111140a77ae1f115bf127721f9237..c0f6dca616a129c2d8eb0c1298e08984476c7b8a 100644
--- a/spring-petclinic-customers-service/src/main/resources/bootstrap.yml
+++ b/spring-petclinic-customers-service/src/main/resources/bootstrap.yml
@@ -4,3 +4,9 @@ spring:
       uri: http://localhost:8888
   application:
     name: customers-service
+---
+spring:
+  profiles: docker
+  cloud:
+    config:
+      uri: http://config-server:8888
diff --git a/spring-petclinic-discovery-server/pom.xml b/spring-petclinic-discovery-server/pom.xml
index b818f2ff3327fff04fc46e93275f4dca8677f5c6..0159f6068206929de2b1449335931c92f9874f0b 100644
--- a/spring-petclinic-discovery-server/pom.xml
+++ b/spring-petclinic-discovery-server/pom.xml
@@ -44,5 +44,40 @@
         </plugins>
     </build>
 
-
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>${docker.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                            <resources>
+                                <resource>
+                                    <targetPath>/</targetPath>
+                                    <directory>${project.build.directory}</directory>
+                                    <include>${project.build.finalName}.jar</include>
+                                </resource>
+                            </resources>
+                            <buildArgs>
+                                <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-discovery-server/src/main/docker/Dockerfile b/spring-petclinic-discovery-server/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..996138d0c7548e2700d71b6e70dcb6a02ff9bd45
--- /dev/null
+++ b/spring-petclinic-discovery-server/src/main/docker/Dockerfile
@@ -0,0 +1,10 @@
+FROM java:8
+VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+ENV SPRING_PROFILES_ACTIVE docker
+RUN bash -c 'touch /app.jar'
+EXPOSE 8761
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml
index af8585eb487dff0138665c11450c347aba3f4147..9c07ca22b5376b2b03f48e067314c99b1d93f333 100644
--- a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml
+++ b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml
@@ -4,3 +4,9 @@ spring:
       uri: http://localhost:8888
   application:
     name: discovery-server
+---
+spring:
+  profiles: docker
+  cloud:
+    config:
+      uri: http://config-server:8888
diff --git a/spring-petclinic-tracing-server/pom.xml b/spring-petclinic-tracing-server/pom.xml
index f8dd04fbaf9980684f15cedb0241bccae9b23484..609723cb934da280d05bd740cadfa01af84c3ead 100644
--- a/spring-petclinic-tracing-server/pom.xml
+++ b/spring-petclinic-tracing-server/pom.xml
@@ -60,4 +60,40 @@
         </plugins>
     </build>
 
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>${docker.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                            <resources>
+                                <resource>
+                                    <targetPath>/</targetPath>
+                                    <directory>${project.build.directory}</directory>
+                                    <include>${project.build.finalName}.jar</include>
+                                </resource>
+                            </resources>
+                            <buildArgs>
+                                <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-tracing-server/src/main/docker/Dockerfile b/spring-petclinic-tracing-server/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6a0e3ea771dac854dfce3d8d72171db1f21d8f66
--- /dev/null
+++ b/spring-petclinic-tracing-server/src/main/docker/Dockerfile
@@ -0,0 +1,10 @@
+FROM java:8
+VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+ENV SPRING_PROFILES_ACTIVE docker
+RUN bash -c 'touch /app.jar'
+EXPOSE 8081
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml b/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml
index abdd9f5cdcbe12ab6d05b2af39f2dd6402f2feaa..e0ae840e42c09a6748943517370d4d270f55c648 100644
--- a/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml
+++ b/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml
@@ -4,3 +4,9 @@ spring:
       uri: http://localhost:8888
   application:
     name: tracing-server
+---
+spring:
+  profiles: docker
+  cloud:
+    config:
+      uri: http://config-server:8888
diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml
index 071e2ae2106c83a65a1d95f62c8f22b081976d07..e0539379a4c27e41314a40e802f02221e40b769b 100644
--- a/spring-petclinic-vets-service/pom.xml
+++ b/spring-petclinic-vets-service/pom.xml
@@ -102,5 +102,40 @@
 		</plugins>
 	</build>
 
-
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.spotify</groupId>
+                        <artifactId>docker-maven-plugin</artifactId>
+                        <version>${docker.plugin.version}</version>
+                        <executions>
+                            <execution>
+                                <phase>install</phase>
+                                <goals>
+                                    <goal>build</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                            <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                            <resources>
+                                <resource>
+                                    <targetPath>/</targetPath>
+                                    <directory>${project.build.directory}</directory>
+                                    <include>${project.build.finalName}.jar</include>
+                                </resource>
+                            </resources>
+                            <buildArgs>
+                                <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                            </buildArgs>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-vets-service/src/main/docker/Dockerfile b/spring-petclinic-vets-service/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6a0e3ea771dac854dfce3d8d72171db1f21d8f66
--- /dev/null
+++ b/spring-petclinic-vets-service/src/main/docker/Dockerfile
@@ -0,0 +1,10 @@
+FROM java:8
+VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+ENV SPRING_PROFILES_ACTIVE docker
+RUN bash -c 'touch /app.jar'
+EXPOSE 8081
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-vets-service/src/main/resources/bootstrap.yml b/spring-petclinic-vets-service/src/main/resources/bootstrap.yml
index d09e10d043c95c1cbbc455b154d788d19ba689d3..59c6dd258808b780bde6286184c458b0bdff3d5f 100644
--- a/spring-petclinic-vets-service/src/main/resources/bootstrap.yml
+++ b/spring-petclinic-vets-service/src/main/resources/bootstrap.yml
@@ -4,3 +4,9 @@ spring:
       uri: http://localhost:8888
   application:
     name: vets-service
+---
+spring:
+  profiles: docker
+  cloud:
+    config:
+      uri: http://config-server:8888
diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml
index 6e76176acbd2d42060447b913a63e0f8dee855df..3bd5d94003d2593dbd87983ba38d531e67269a02 100644
--- a/spring-petclinic-visits-service/pom.xml
+++ b/spring-petclinic-visits-service/pom.xml
@@ -80,5 +80,40 @@
 		</plugins>
 	</build>
 
-
+    <profiles>
+        <profile>
+            <id>buildDocker</id>
+                <build>
+                    <plugins>
+                        <plugin>
+                            <groupId>com.spotify</groupId>
+                            <artifactId>docker-maven-plugin</artifactId>
+                            <version>${docker.plugin.version}</version>
+                            <executions>
+                                <execution>
+                                    <phase>install</phase>
+                                    <goals>
+                                        <goal>build</goal>
+                                    </goals>
+                                </execution>
+                            </executions>
+                            <configuration>
+                                <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
+                                <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
+                                <resources>
+                                    <resource>
+                                        <targetPath>/</targetPath>
+                                        <directory>${project.build.directory}</directory>
+                                        <include>${project.build.finalName}.jar</include>
+                                    </resource>
+                                </resources>
+                                <buildArgs>
+                                    <ARTIFACT_NAME>${project.build.finalName}</ARTIFACT_NAME>
+                                </buildArgs>
+                            </configuration>
+                        </plugin>
+                    </plugins>
+                </build>
+        </profile>
+    </profiles>
 </project>
diff --git a/spring-petclinic-visits-service/src/main/docker/Dockerfile b/spring-petclinic-visits-service/src/main/docker/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..6a0e3ea771dac854dfce3d8d72171db1f21d8f66
--- /dev/null
+++ b/spring-petclinic-visits-service/src/main/docker/Dockerfile
@@ -0,0 +1,10 @@
+FROM java:8
+VOLUME /tmp
+ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh wait-for-it.sh
+RUN bash -c 'chmod +x wait-for-it.sh'
+ARG ARTIFACT_NAME
+ADD ${ARTIFACT_NAME}.jar /app.jar
+ENV SPRING_PROFILES_ACTIVE docker
+RUN bash -c 'touch /app.jar'
+EXPOSE 8081
+ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml
index 039143ab7cf6554b2eac31425f9d6a853fa9122c..1ddd133b1eac88d9a2c3355e255c849808a0e114 100644
--- a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml
+++ b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml
@@ -4,3 +4,9 @@ spring:
       uri: http://localhost:8888
   application:
     name: visits-service
+---
+spring:
+  profiles: docker
+  cloud:
+    config:
+      uri: http://config-server:8888