标签:存储 ica selinux request ase -- post exe ref
一、总体流程
部署:
总体流程:
二、gitlab安装
三、jenkins安装
四、gitlab通知jenkins进行构建
五、docker-registry安装
1、部署机(下载镜像,启动镜像)
2、开发机
2.1、mac:
说明:设置insecure registry如上,否则有https的问题,导致无法push和pull,之后"apply restart"就好了。
2.2、docker1.10.3
在/etc/sysconfig/docker中修改OPTIONS=‘--selinux-enabled=false --insecure-registry=10.211.55.4:5000‘
修改后
2.3、docker1.12.3
在/lib/systemd/system/docker.service中修改ExecStart=/usr/bin/dockerd --insecure-registry=10.211.55.4:5000
3、生产机
如果需要从registry拉取pull镜像,也需要像上边那样设置,之后才可以拉取。
六、gitlab
七、jenkins
1、"系统管理"->"系统设置"(已经设置过了):第四十一章 jenkins + gitlab + webhooks + publish-over-ssh(1)
2、项目配置:
2.1、general
项目名称:myservice1-docker(其实就是项目的artifactid)
2.2、源码管理
2.3、构建触发器
2.4、Build
八、本地开发代码
1、pom.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.xxx</groupId> 8 <artifactId>myservice1-docker</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <properties> 12 <java.version>1.8</java.version><!-- 官方推荐 --> 13 <docker.registry>10.211.55.4:5000</docker.registry> 14 <push.image>true</push.image> 15 </properties> 16 17 <parent> 18 <groupId>org.springframework.boot</groupId> 19 <artifactId>spring-boot-starter-parent</artifactId> 20 <version>1.3.5.RELEASE</version> 21 </parent> 22 23 <!-- 引入实际依赖 --> 24 <dependencies> 25 <dependency> 26 <groupId>org.springframework.boot</groupId> 27 <artifactId>spring-boot-starter-web</artifactId> 28 </dependency> 29 <dependency> 30 <groupId>org.springframework.boot</groupId> 31 <artifactId>spring-boot-starter-actuator</artifactId> 32 </dependency> 33 </dependencies> 34 35 <build> 36 <plugins> 37 <plugin> 38 <groupId>org.springframework.boot</groupId> 39 <artifactId>spring-boot-maven-plugin</artifactId> 40 </plugin> 41 <plugin> 42 <groupId>com.spotify</groupId> 43 <artifactId>docker-maven-plugin</artifactId> 44 <version>0.4.13</version> 45 <configuration> 46 <imageName>${docker.registry}/${project.groupId}/${project.artifactId}:${project.version}</imageName> 47 <dockerDirectory>${basedir}/src/main/docker</dockerDirectory> 48 <pushImage>${push.image}</pushImage> 49 <resources> 50 <resource> 51 <!-- ${project.build.directory},项目构建输出目录,默认为target/ --> 52 <directory>${project.build.directory}</directory> 53 <!-- ${project.build.finalName},打包出来的jar名称,默认为${project.artifactId}-${project.version} --> 54 <include>${project.build.finalName}.jar</include> 55 </resource> 56 </resources> 57 </configuration> 58 </plugin> 59 </plugins> 60 </build> 61 </project>
说明:第三十八章 springboot+docker(maven)
2、Dockerfile
1 FROM 10.211.55.4:5000/zhaojigang/jdk8:c7_j8 2 3 ADD myservice1-docker-1.0-SNAPSHOT.jar app.jar 4 5 ENV JAVA_HOME /opt/jdk 6 ENV PATH $PATH:$JAVA_HOME/bin 7 8 CMD ["java","-jar","app.jar"]
说明:基础镜像是本地开发好的一个镜像,需要之后推到远程registry:docker push 10.211.55.4:5000/zhaojigang/jdk8:c7_j8
注意:实际上
1 FROM 10.211.55.4:5000/zhaojigang/jdk8:c7_j8 2 ADD myservice1-docker-1.0-SNAPSHOT.jar app.jar
不应该硬编码,应该写作
1 FROM @docker.registry@/zhaojigang/jdk8:c7_j8 2 ADD @project.build.finalName@.jar app.jar
但是暂时没成功!!!
3、HelloDockerController.java
1 package com.xxx.docker.myservice1.web; 2 3 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RestController; 5 6 @RestController 7 @RequestMapping("/docker") 8 public class HelloDockerController { 9 @RequestMapping("/hello") 10 public String helloDocker(){ 11 return "hello docker12!!!"; 12 } 13 }
九、git提交代码
之后,查看jenkins编译console,可以看到,会先打镜像,最后将镜像push到远程的registry中,供将来的机器去pull。
十、从开发机或者生产机pull镜像并且运行测试
第四十三章 微服务CICD(5)- gitlab + jenkins + docker
标签:存储 ica selinux request ase -- post exe ref
原文地址:http://www.cnblogs.com/java-zhao/p/6033668.html