This commit is contained in:
Evgeny S 2018-08-24 16:11:50 +00:00 committed by GitHub
commit 4b9aa397ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 202 additions and 0 deletions

13
Dockerfile Normal file
View file

@ -0,0 +1,13 @@
FROM ubuntu:latest
MAINTAINER evgenyidf <evgenyidf@gmail.com>
RUN apt-get update --fix-missing && apt-get install -y default-jre
RUN mkdir /var/spring-petclinic
COPY target/spring-petclinic*.jar /var/spring-petclinic/spring-petclinic.jar
EXPOSE 8080
VOLUME [".", "/"]
CMD ["java -jar /var/spring-petclinic/spring-petclinic.jar"]

28
Jenkinsfile vendored Normal file
View file

@ -0,0 +1,28 @@
pipeline {
agent { docker { image 'maven:3.3.3' } }
stages {
stage('build and test') {
steps {
echo 'Building..'
}
steps {
sh 'mvn package'
}
}
stage('docker image build') {
steps {
echo 'Docker compose..'
}
steps {
sh 'docker-compose down && docker-compose up --build -d'
}
}
}
post {
failure {
mail bcc: '', body: "<b>Example</b><br>\n\<br>Project: ${env.JOB_NAME} <br>Build Number: ${env.BUILD_NUMBER} <br> URL de build: ${env.BUILD_URL}", cc: '', charset: 'UTF-8', from: '', mimeType: 'text/html', replyTo: '', subject: "ERROR CI: Project name -> ${env.JOB_NAME}", to: "foo@gmail.com";
}
}
}

View file

@ -1,3 +1,12 @@
jenkins:
image: jenkinsci/blueocean
ports:
- "8081:8080"
- "50000:50000"
environment:
- jenkins-data=/var/jenkins_home
mysql: mysql:
image: mysql:5.7 image: mysql:5.7
ports: ports:
@ -7,3 +16,21 @@ mysql:
- MYSQL_DATABASE=petclinic - MYSQL_DATABASE=petclinic
volumes: volumes:
- "./conf.d:/etc/mysql/conf.d:ro" - "./conf.d:/etc/mysql/conf.d:ro"
petclinic1:
build: .
ports:
- "8082:8080"
petclinic2:
build: .
ports:
- "8083:8080"
nginx:
build: ./nginx
links:
- petclinic1:petclinic1
- petclinic2:petclinic2
ports:
- "8080:8080"

6
nginx/Dockerfile Normal file
View file

@ -0,0 +1,6 @@
# Set nginx base image
FROM nginx:latest
MAINTAINER evgenyidf <evgenyidf@gmail.com>
# Copy custom configuration file from the current directory
COPY nginx.conf /etc/nginx/nginx.conf

21
nginx/nginx.conf Normal file
View file

@ -0,0 +1,21 @@
events {
worker_connections 4096; ## Default: 1024
}
http {
upstream localhost {
# These are references to our backend containers, facilitated by
# Compose, as defined in docker-compose.yml
server petclinic1:8082;
server petclinic2:8083;
}
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://localhost;
proxy_set_header Host $host;
}
}
}

84
pom.xml
View file

@ -7,6 +7,9 @@
<artifactId>spring-petclinic</artifactId> <artifactId>spring-petclinic</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version> <version>2.0.0.BUILD-SNAPSHOT</version>
<!-- Output to jar format -->
<packaging>jar</packaging>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
@ -17,6 +20,11 @@
<properties> <properties>
<!-- Generic properties --> <!-- Generic properties -->
<jdk.version>1.8</jdk.version>
<jodatime.version>2.5</jodatime.version>
<junit.version>4.12</junit.version>
<log4j.version>1.2.17</log4j.version>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@ -108,6 +116,31 @@
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -202,7 +235,58 @@
</dependency> </dependency>
</dependencies> </dependencies>
</plugin> </plugin>
<!-- Set a JDK compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<!-- Make this jar executable -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/log4j.properties</exclude>
</excludes>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>org.springframework.samples.petclinic.PetClinicApplication</mainClass>
<classpathPrefix>dependency-jars/</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
<!-- Copy project dependency -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!-- exclude junit, we need runtime dependency only -->
<includeScope>runtime</includeScope>
<outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
<!-- Apache 2 license --> <!-- Apache 2 license -->

16
src/Dockerfile Normal file
View file

@ -0,0 +1,16 @@
FROM ubuntu:latest
MAINTAINER evgenyidf <evgenyidf@gmail.com>
RUN apt-get update --fix-missing && apt-get install -y default-jre
RUN mkdir -p /var/spring-petclinic/jars
WORKDIR /var/spring-petclinic
COPY ../target/spring-petclinic*.jar /var/spring-petclinic/spring-petclinic.jar
COPY ../target/dependency-jars/*.jar /var/spring-petclinic/jars
RUN ls -la /var/spring-petclinic/spring-petclinic-2.0.0.BUILD-SNAPSHOT.jar
EXPOSE 8080
#ENTRYPOINT ["java -cp /var/spring-petclinic.jar"]

View file

@ -0,0 +1,7 @@
# Root logger option
log4j.rootLogger=DEBUG, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n