1、spring boot项目
1.1 pom.xml配置
<artifactId>xxx-docker</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<docker.image.prefix>registry-vpc.cn-qingdao.aliyuncs.com/xxx</docker.image.prefix>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
- imageName指定了镜像的名字,本例为 registry-vpc.cn-qingdao.aliyuncs.com/xxx/xxx-docker。
- dockerDirectory指定 Dockerfile 的位置。
- resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。本例,只需一个 jar 文件。
1.2 配置
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD xxx-docker-1.0.0.RELEASE.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录。
- 项目的 jar 文件作为 “app.jar” 添加到容器的。
- ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source。
2、阿里云镜像申请
请参考:https://my.oschina.net/u/182501/blog/1842711
3、jenkins配置
jenkins的服务器需要安装docker
3.1 build
3.2 Post Steps
4、启动项目
在需要启动项目的服务器启动,该服务器需要安装docker。
4.1拉取镜像
docker pull registry.cn-qingdao.aliyuncs.com/xxx/xxx-docker
4.2 启动项目
docker run -d -p 8082:8082 registry-vpc.cn-qingdao.aliyuncs.com/xxx/xxx-docker
- -d:让容器在后台运行。
- -p 参数来设置不一样的端口。
4.3 停止项目
docker stop registry-vpc.cn-qingdao.aliyuncs.com/xxx/xxx-docker
4.4 查看日志
docker logs -f 7a38a1ad55c6
- docker logs [ID或者名字] 可以查看容器内部的标准输出。
- -f:让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。