目录
1.3 方式二 jar不打包进容器镜像,通过映射主机目录映射方式
4、 进入容器命令(bash/sh 这里有差异有的不需要/sh)
前言:没有使用jenkins构建打包、部署,本文使用dockerfile的方式构建容器启动jar包
一、maven打包后端服务
1、clean
2、package
3、查看jar包
二、部署java后端服务
1、使用dockerfile构建一个java17的镜像
1.1 使用dokcerfile构建容器命令
FROM openjdk:17-jdk-alpine
# 设置工作目录
WORKDIR /app
# 复制项目文件到工作目录
COPY . /app
# 编译项目 (我没有使用)
# RUN javac Main.java
# 设置容器启动命令 ,我使用的是启动jar包命令,自己优化了一下
CMD ["java", "Main"]
具体dockerfile文件 给动力 私聊
1.2 方式一 将jar打包进容器镜像
这种方式就是吧jar包放在当前目录,再执行构建dockerfile命令,不便捷换包
1.3 方式二 jar不打包进容器镜像,通过映射主机目录映射方式
这个主要在执行启动,映射一下目录,我使用的是这种方式
1.4 执行构建镜像命令
dockerfile文件设置好了之后,再对应目录执行
docker build -t my-java17-app:20231201 .
2、查看验证
3、启动容器
将jar包放到主机目录,然后执行下面命令
docker run -p 5900:5900 -d --name=springbootvue -v /opt/myapp/springbootvue:/app --restart=always my-java17-app:20231201
4、 进入容器命令(bash/sh 这里有差异有的不需要/sh)
docker exec -it 117b0e2e7101 bash/sh
5、使用前端页面验证
三、前端打包
1、控制台执行打包命令
npm run build
2、验证
打包成功会新增dist目录
四、部署前端服务
1、创建文件目录
mkdir -p /opt/myapp/springbootvuemy/nginx/{conf,html,logs}
2、拉取ngnix镜像
docker pull nginx:latest
3、启动服务
docker run --name nginx-test -p 8080:80 -d nginx
4、copy默认文件到宿主机目录
如果之前有了 第三步就不需要了,直接复制进去即可,4也可以省略,明白这步干嘛就行
docker cp nginx-test:/etc/nginx/nginx.conf /opt/myapp/springbootvuemy/nginx/nginx.conf
docker cp nginx-test:/etc/nginx/conf.d/default.conf /opt/myapp/springbootvuemy/nginx/conf/default.conf
5、 将第3步的容器删除
docker stop nginx-test
docker rm nginx-test
6、 将前端代码放入到宿主机html目录
7、修改自己需要的 nginx.conf
重要,略,我自己网盘目录存档了
8、启动容器挂载目录
docker run --restart=always --name=nginxvue -it -p 80:80 -v /opt/myapp/springbootvuemy/nginx/nginx.conf:/etc/nginx/nginx.conf -v /opt/myapp/springbootvuemy/nginx/logs:/var/log/nginx -v /opt/myapp/springbootvuemy/nginx/html:/usr/share/nginx/html -d nginx:latest
9、进入容器命令
docker exec -it 117b0e2e7101 bash
9、使用前端页面验证
使用ip访问即可