linux下docker构建springboot

3 篇文章 0 订阅
1 篇文章 0 订阅

1.新建一个简单springboot demo,项目名是myspringbootdemo

2.建立myspringbootdemo/src/main/docker/Dockerfile文件

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD myspringbootdemo-0.0.1-SNAPSHOT.jar app.jar (这里根据你具体项目和版本名称来写,其他不用改)
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

3.添加以下代码到pom.xml

	<properties>
		<docker.image.prefix>jeffdocker</docker.image.prefix>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>com.spotify</groupId>
				<artifactId>docker-maven-plugin</artifactId>
				<version>0.4.13</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>

4.把项目放到linux系统上,然后cd myspringbootdemo到项目目录下

5.构建docker镜像

mvn package -Dmaven.test.skip=true docker:build

6.运行docker镜像,防火墙一定要开放8080端口(端口看自己需求可改)

docker run -p 8080:8080 -t jeffdocker/myspringbootdemo

ps:我在运行上面这行命令时,会报错

/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint loving_mccarthy (e33899941e1a102f62f90da7d7143fa84f797e9825f1d01e1fd735783ad65483):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.17.0.2:8080 ! -i docker0: iptables: No chain/target/match by that name.
 (exit status 1)).

网上查资料解释到,当firewalld启动或重启时,会移除iptables中docker的规则,导致docker在端口访问方面出现问题。

解决办法是重启docker,命令是systemctl restart docker.service,又或者先重启firewalld,命令是systemctl restart firewalld,再重启docker。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值