将项目部署到docker容器上

通过docker部署前后端项目

前置条件

需要在docker中拉去jdk镜像、nginx镜像

docker pull openjdk:17 #拉取openjdk17镜像
docker pull nginx #拉取nginx镜像

部署后端

1.打包后端项目

点击maven插件下面的Lifecycle的package 对后端项目进行打包 等待打包完成即可
在这里插入图片描述

2.将打包好的jar包上传到服务器

将打包好的项目jar包直接上传到服务器上面即可
在这里插入图片描述

3.配置dockerfile文件

vim dockerfile #vim文本编辑器

在这里插入图片描述

FROM openjdk:17 #jdk版本

RUN mkdir /app 

COPY canteen-0.0.1-SNAPSHOT.jar  /app/

CMD java -jar  /app/canteen-0.0.1-SNAPSHOT.jar

EXPOSE 8088 # 暴露端口

4.构建成docker镜像

执行docker build -t 完成镜像构建

docker build -t canteen . # 构建镜像
# 等待构建完成后执行docker查看镜像是否构建成功
docker images #查看镜像

在这里插入图片描述

5.运行docker镜像

执行下述命令完成docker命令完成容器启动

docker run -d -p 8088:8088 --restart unless-stopped --name app canteen # -p 端口映射 --restart 设置为开机自启动

在这里插入图片描述

如果能看到上诉信息就说明后端项目部署成功

部署前端vue项目

1.打包前端项目

在前端项目执行npm run build对vue项目进行打包

npm run build

等待构建完成后在会出现dist文件夹 dist文件下即为vue项目的依赖和文件

在这里插入图片描述

2.上传至阿里云服务器

在这里插入图片描述

3.编写default.conf配置文件

在dist同层目录下 vim default.conf 进入vim编辑器完成default.conf的配置

在这里插入图片描述

server {
    listen       80;
    server_name  docker_ip_address; # 修改为docker服务宿主机的ip

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
	
	# 跨域配置
    location /api {
        rewrite ^/api/(.*)$  /$1 break;
        proxy_pass http://backend_server_ip:port/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

4.编写dockerfile文件

同理通过vim dockerfile 完成dockerfile的配置

vim Dockerfile

在这里插入图片描述

FROM nginx
 
MAINTAINER traveler
 
RUN rm /etc/nginx/conf.d/default.conf
 
ADD default.conf /etc/nginx/conf.d/
 
COPY dist/ /usr/share/nginx/html/

5.构建docker镜像

执行docker build 完成镜像的配置

docker build -t webapp . # 构建镜像
# 等待构建完成后执行docker查看镜像是否构建成功
docker images #查看镜像

在这里插入图片描述

6.启动镜像容器

启动docker镜像

docker run -p 80:80 -d --name webapp webapp

在这里插入图片描述

查看最终效果

在这里插入图片描述

到此就完成前后端项目的部署啦

### 使用Docker部署Java应用的详细步骤 #### 准备工作 为了成功使用 Docker 部署 Java 应用程序,需先准备好必要的文件和环境。这包括但不限于拥有一个可执行的 `.jar` 文件以及编写好 `Dockerfile` 来定义镜像构建过程[^1]。 ```bash # 假设当前目录结构如下: . ├── docker-demo-service.jar # Maven 打包后的 jar 文件 └── Dockerfile # 定义如何创建 Docker 镜像 ``` #### 编写Dockerfile 在项目根目录下创建名为 `Dockerfile` 的文本文件,其内容应指定基础镜像、设置工作目录、复制应用程序二进制文件至容器内并声明启动命令: ```dockerfile FROM openjdk:8-jdk-alpine # 使用轻量级的基础镜像 VOLUME /tmp # 设置挂载点以便于日志记录或其他临时数据存储 ADD docker-demo-service.jar app.jar # 将本地 jar 添加到容器中的固定位置 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 启动命令 ``` 此配置基于官方 OpenJDK 镜像,并通过 `-Djava.security.egd` 参数优化随机数生成器性能以加快首次启动速度[^2]。 #### 构建Docker镜像 利用上述准备好的 `Dockerfile` 和编译打包得到的应用程序 JAR 文件,在终端中输入以下指令来构建自定义的 Docker 镜像: ```bash docker build -t my-java-app . ``` 这条命令会读取当前路径下的 `Dockerfile` 并按照其中指示逐步组装最终所需的镜像版本,标签 (`my-java-app`) 可自行设定用于区分不同用途或迭代版本[^3]。 #### 运行Docker容器 一旦完成了镜像构建,则可以借助下面给出的例子轻松地将其作为服务实例化出来: ```bash docker run -d --name java-web-app -p 8080:8080 my-java-app ``` 这里指定了端口映射关系(即主机上的 8080 端口对应着容器内部的服务监听地址),同时赋予了一个易于识别的名字给新启动的任务实体[^4]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星辰予曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值