diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..4c067e98
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,10 @@
+FROM frolvlad/alpine-oraclejdk8:slim
+MAINTAINER xiunai78 <154707516@qq.com>
+
+# Add the service itself
+ARG JAR_FILE
+ADD ${JAR_FILE} /usr/local/msgexchangeapi/myapp.jar
+
+EXPOSE 8080
+
+ENTRYPOINT ["/usr/bin/java", "-jar", "/usr/local/msgexchangeapi/myapp.jar"]
\ No newline at end of file
diff --git a/jenkins/Jenkinsfile b/jenkins/Jenkinsfile
new file mode 100644
index 00000000..c1b31450
--- /dev/null
+++ b/jenkins/Jenkinsfile
@@ -0,0 +1,68 @@
+node {
+ def mailto="154707516@qq.com" //邮件接收人员列表
+ def containerName="msgexchangeapi" //容器名称
+ def imageVersion="0.0.1-SNAPSHOT"
+ def imageName="130.120.3.193/com.gzzn.omms/msgexchangeapi:${imageVersion}" //镜像名称
+ def credentialsId="e41b57a4-436a-4617-817c-9e3f25a8a47f" //ssh证书id
+ def deployHost="130.120.3.231" //发布到的主机
+ def export=95 //暴露端口
+
+ try
+ {
+ checkout scm
+ docker.image('maven:3-alpine').inside('-v /root/.m2:/root/.m2') {
+ stage('build'){
+ sh 'mvn clean package dockerfile:build dockerfile:push -Dmaven.test.skip=true'
+ }
+
+ stage('deploy'){
+ def remote = [:]
+ remote.name = "airport-dev"
+ remote.host = "${deployHost}"
+ remote.allowAnyHosts = true
+
+ withCredentials([sshUserPrivateKey(credentialsId: "${credentialsId}", keyFileVariable: 'kfIdentity', passphraseVariable: 'pVariable', usernameVariable: 'userName')]) {
+ remote.user = userName
+ remote.identityFile = kfIdentity
+
+ sshCommand remote: remote, command: "docker stop ${containerName}",sudo: true ,failOnError: false
+ sshCommand remote: remote, command: "docker rm ${containerName}",sudo: true ,failOnError: false
+ sshCommand remote: remote, command: "docker rmi ${imageName}",sudo: true ,failOnError: false
+ sshCommand remote: remote, command: "docker run -d -p ${export}:8080 --name ${containerName} ${imageName}",sudo: true
+ }
+ }
+ } //end docker
+
+ //发送成功邮件
+ emailext (
+ subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 更新正常",
+ body: """
+ 详情:
+ SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'
+ 状态:${env.JOB_NAME} jenkins 更新运行正常
+ URL :${env.BUILD_URL}
+ 项目名称 :${env.JOB_NAME}
+ 项目更新进度:${env.BUILD_NUMBER}
+ """,
+ to: "${mailto}",
+ recipientProviders: [[$class: 'DevelopersRecipientProvider']]
+ )
+ }
+ catch(e)
+ {
+ emailext (
+ subject: "'${env.JOB_NAME} [${env.BUILD_NUMBER}]' 更新失败",
+ body: """
+ 详情:
+ FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'
+ 状态:${env.JOB_NAME} jenkins 运行失败
+ URL :${env.BUILD_URL}
+ 项目名称 :${env.JOB_NAME}
+ 项目更新进度:${env.BUILD_NUMBER}
+ """,
+ to: "${mailto}",
+ recipientProviders: [[$class: 'DevelopersRecipientProvider']]
+ )
+ throw e
+ } //end catch
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index de87e14f..cd171d57 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,6 +101,26 @@
org.springframework.boot
spring-boot-maven-plugin
+
+ com.spotify
+ dockerfile-maven-plugin
+ 1.4.4
+
+ gzzn
+ Gzzn@2018
+
+ ${project.version}
+
+
+
+ false
+
+ 130.120.3.193/${project.groupId}/${project.artifactId}
+
+ target/${project.build.finalName}.jar
+
+
+