Dcoker构建部署Java项目过程

发布时间:2024年01月12日

目录

前言

一、打包

二、Docker File文件编写

一个简单的Docker File文件

三、上传文件

四、构建镜像

五、运行

六、端口开放


前言

使用Dcoker构建部署Java项目,发布到服务器


一、打包

我这里打包的是item-service这个module,clean-cpmpile-package

避坑:?像我这样的目录结构,item-service里面有引用父类的pom,并且也引用了公共组件common的pom依赖,那么,在打包item-service之前,需要现将父工程和common工程进行:clean-cpmpile-package-install,随后才可以完成打包item-service。

打包完成在target下有一个包:

这个是等会需要上传的文件。

还有一个坑是:

?item-service这个服务的pom里面需要有:

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

?不然镜像构建好之后,docker run时发现报错,找不到主类。

二、Docker File文件编写

一个简单的Docker File文件

# 使用官方的OpenJDK 8作为基础镜像
FROM openjdk:8-jdk-alpine

# 将本地当前目录下的jar包复制到容器的/app路径下
COPY item-service.jar /app.jar

# 设置容器启动时运行jar包命令
ENTRYPOINT ["java", "-jar", "/app.jar"]

?COPY item-service.jar /app.jar? ?这一行命令的item-service.jar是我将前面打包后上传的服务名字改了,如果不改,就得写成下同的名字。

三、上传文件

将Dockerfile文件和服务的jar包上传到一个目录下:

四、构建镜像

docker build -t item-service .

?后面的item-service是镜像名字,最后又一个点,是构建在当前目录的

五、运行

docker run -d --name item-service --network demo -p 8082:8082 item-service

?这里设置了网桥,如果说你项目的其他组件,例如:MySQL、Nacos等都使用Docker部署,这些组件需要在一个网桥里面才能够互相访问,我这里是自定义了一个网桥,默认的网桥的bridge。配置网桥之后,Docker里面容器互相访问,是通过容器名字访问的,所以,yml配置文件中凡是涉及到IP地址的,都需要改为容器的名字:

?启动之后可以用docker logs + 镜像名字来查看启动日志,这个就和你在idea控制台的启动日志一样了,只要没报错就算是启动成功了,然后docker ps 看一下容器的状态ok不ok。

六、端口开放

# 开放端口
sudo firewall-cmd --add-port=8082/tcp --permanent

# 查看端口是否放行
firewall-cmd --query-port=8082/tcp

# 重启防火墙
sudo firewall-cmd --reload?

如果跟我一样买的云服务器,还要去控制台开端口。

齐活儿~

文章来源:https://blog.csdn.net/qq_42251944/article/details/135554354
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。