springboot nginx docker 部署
时间: 2025-01-08 16:11:44 浏览: 5
### 使用 Docker 部署 Spring Boot 应用程序与 Nginx
#### 准备工作
为了顺利部署,需确保云服务器已成功安装 Docker[^1]。
#### 创建 Spring Boot 应用的 Dockerfile 文件
在后端启动类模块目录下创建名为 `Dockerfile` 的文件,其内容应定义基础镜像、复制构建好的 jar 包到容器内并指定入口命令。具体配置如下所示:
```dockerfile
FROM openjdk:8-jre
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
WORKDIR /
ENTRYPOINT ["java", "-jar", "/app.jar"]
```
此部分操作使得能够将本地编译完成后的 Spring Boot 应用打包成可执行于任何支持 Docker 环境中的独立单元[^4]。
#### 构建和运行 Spring Boot 容器
利用上述准备好的 `Dockerfile` 来构建自定义的应用镜像,并通过该镜像实例化出实际承载业务逻辑的服务容器。这一步骤通常涉及两条指令——一条用于构建镜像(`docker build`);另一条则负责启动容器(`docker run`)。
对于希望简化多服务协调管理场景下的开发运维流程而言,则推荐借助 docker-compose.yml 文件来统一管理和编排多个关联紧密的服务组件之间的关系,比如当前案例里提到的同时处理 spring boot 和 nginx 这两个不同角色的任务组合情况[^3]。
#### 编写 docker-compose.yml 文件实现自动化部署
当涉及到不止一个单独的服务时(例如这里的 Spring Boot 后端加上前端代理层 Nginx),可以通过编写 `docker-compose.yml` 文件的方式一次性定义好所有必要的资源和服务依赖关系,从而达到一键式快速搭建复杂应用架构的目的。下面是一个简单的例子说明如何设置这两个相互协作的工作节点:
```yaml
version: '3'
services:
backend:
image: your-springboot-app-image-name # 替换成之前构建得到的具体名称标签形式
ports:
- "8080:8080"
frontend-proxy:
image: nginx:latest
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf # 假设存在自定义配置文件路径映射需求的话
depends_on:
- backend
ports:
- "80:80"
```
这段 YAML 片段指定了两个服务项:一个是基于前面所提及的方法制作出来的包含特定版本 Java 运行环境以及对应应用程序二进制包在内的后台处理器;另一个则是作为反向代理使用的官方最新版 NGINX 映象实体。同时设置了两者间合理的网络通信端口分配方案以保障正常交互访问行为的发生[^2]。
阅读全文