通过dockerfile将nginx、前端和后端封装成一个镜像
·
1、内容如下

2、dist文件
就是vue项目的打包文件
3、jar包文件
就是springboot的打包文件
4、编写Dockerfile
#引用 jdk1.8作为基础镜像,这个jdk1.8是我自己用linux版本的jdk打包的,具体操作可以看
#https://blog.csdn.net/qq_38639813/article/details/129384923中将jdk打包为镜像模块
FROM jdk1.8:latest
#将nginx导入到镜像中。这个nginx.tar.gz就是安装完后的nginx文件夹变成压缩包之后的样子,因为
#压缩包传输方便所以就变成压缩包了,这个进入容器后会自动解压缩。这个压缩包在我的资源里有
ADD nginx.tar.gz /usr/local
ADD nginx.conf /usr/local/nginx/conf
ADD dist /home/dist
#默认是放到容器的/usr路径下,并且对应的日志文件也在该路径下
ADD GBS-TD-api.jar GBS-TD-api.jar
#安装nginx所需的基础依赖
RUN yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
#暴露前后端端口
EXPOSE 80 8085
#将容器启动时执行的脚本导入到容器中
COPY setup.sh /usr/local
#容器启动后执行的命令,也就是执行启动脚本
ENTRYPOINT ["sh", "/usr/local/setup.sh"]
5、nginx.tar.gz
这个nginx.tar.gz就是安装完后的nginx文件夹变成压缩包之后的样子,因为压缩包传输方便所以就变成压缩包了,这个进入容器后会自动解压缩。这个压缩包在我的资源里有:https://download.csdn.net/download/qq_38639813/87839508
6、nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /home/dist;
try_files $uri $uri/ /index.html; # 解决刷新报404的问题
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
7、setup.sh
#!/bin/bash
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nohup java -jar -Dfile.encoding=utf-8 GBS-TD-api.jar
8、具体操作步骤
(1) 将上述六个文件统一上传到linux的一个文件夹下
(2)进入该文件夹执行
docker build -t test:v1.0 .
(3)这时docker images就可以看到新生成的镜像
(4)运行镜像
docker run -itd --name test -p 8081:80 -p 8085:8085 test:v1.0
(5)这时访问ip:8081就可以看到页面了
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)