jenkins将spring boot项目发布到阿里云镜像中

 

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

15ec9c3988e1ed27ccea01cefd2be1b05ae.jpg

3.2 Post Steps

6e50b10ee87651af420ebfb13a30e3009cf.jpg

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 一样来输出容器内部的标准输出。   

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值