springboot项目打包doocker镜像并可run运行

导读:本篇文章讲解 springboot项目打包doocker镜像并可run运行,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1,pom.xml,是这样配置的,这样配置是为了把依赖的jar包和配置文件不打包到执行的jar里面

<build>
		<resources>
			<!--指定src/main/resources资源要过滤-->
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
			</resource>
		</resources>
		<plugins>
			<!-- 可执行jar插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<outputDirectory>${project.build.directory}/etc</outputDirectory>
					<archive>
						<manifest>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
							<mainClass>com.familylinkedu.web.WebServiceApplication</mainClass>
						</manifest>
						<manifestEntries>
							<Class-Path>.</Class-Path>
						</manifestEntries>
					</archive>
					<excludes>
						<exclude>**/*.yml</exclude>
						<exclude>**/*.properties</exclude>
					</excludes>

				</configuration>
			</plugin>
			<!-- maven资源文件复制插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.7</version>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.shared</groupId>
						<artifactId>maven-filtering</artifactId>
						<version>1.3</version>
					 </dependency>
				</dependencies>
				<executions>
					<execution>
						<id>copy-resources</id>
						<!-- here the phase you need -->
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/etc</outputDirectory>
							<resources>
								<resource>
									<directory>src/main/resources</directory>
									<includes>
										<exclude>**/*.yml</exclude>
										<exclude>**/*.properties</exclude>
									</includes>
									<filtering>true</filtering>
								</resource>
							</resources>
							<encoding>UTF-8</encoding>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- 依赖包插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/etc/lib</outputDirectory>
							<!-- 是否不包含间接依赖 -->
							<excludeTransitive>false</excludeTransitive>
							<!-- 忽略版本 -->
							<stripVersion>false</stripVersion>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.18.1</version>
				<configuration>
					<skipTests>true</skipTests>
				</configuration>
			</plugin>
		</plugins>
	</build>

mavne打包后的目录结构如下,如果大家mavne打包的目录结构不是这样的,在使用docker的时候只需要将dockerfile的COPY文件成自己需要的文件即可

springboot项目打包doocker镜像并可run运行

2,将目录etc的所有文件上传到linux服务的一个目录中(目录自己顺便选)

springboot项目打包doocker镜像并可run运行

3,在linux目录中编写dockerfile文件

vim Dockerfile

Dockerfile文件内容如下

FROM openjdk:8    #依赖jdk8
COPY web-service-1.0.0-SNAPSHOT.jar /web-service/    #将项目执行jar包复制到docker镜像中自己指定的目录
COPY lib/** /web-service/lib/        #将项目依赖jar包复制到docker镜像中自己指定的目录
COPY application.yml /web-service/    #将配置文件复制到docker镜像中自己指定的目录
COPY application-dev.yml /web-service/
WORKDIR /web-service/    #切换命令执行的工作空间
EXPOSE 8000              #抛出docker镜像中的端口,让外界可以访问
CMD ["nohup","java","-jar","web-service-1.0.0-SNAPSHOT.jar","&"]    #执行的java运行命令

4,构建docker镜像

#myapp是自定义的镜像名称

docker build -t myapp .

springboot项目打包doocker镜像并可run运行

5,如果在构建的过程中出现错误,或者构建成功,但是镜像未成功run运行,使用以下命令,进入到镜像内部查找问题

docker run -it 3899f524ed34 /bin/bash   # 3899f524ed34 是docker build构建失败过程中的临时容器id, 也可以构建成功后的容器id

6,构建完成够就是运行镜像,启动容器了

docker run -d --name app -p 8000:8000 myapp

附上操作过程完整截图

1,dockerfile文件内容

springboot项目打包doocker镜像并可run运行

2,构建出错时如何查找问题

springboot项目打包doocker镜像并可run运行

3,成功的完整过程

springboot项目打包doocker镜像并可run运行

4,成功访问页面,提醒:请开放端口,如果是阿里云服务器,请开放安全组

springboot项目打包doocker镜像并可run运行

 附上课程中的项目demo:

web-service.zip-Web服务器代码类资源-CSDN下载

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/72567.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!