构建Dockerfile

介绍和记录前后端分离系统的dockerfile文件的模板

1. 后端微服务的Dockerfile模板

1
2
3
4
5
6
7
8
9
10
11
# 指定以openjdk:8-jre 为基础镜像,来构建此镜像,可以理解为运行的需要基础环境
# 或者用另外一个官方的镜像 adoptopenjdk:8-jre-hotspot
FROM registry.cn-hangzhou.aliyuncs.com/songwh/openjdk:8-jre-alpine
# WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行。
WORKDIR /
# 将当前client.jar 复制到容器根目录下
ADD ./songwh-server/ruoyi-admin/target/ruoyi-admin.jar /usr/local/app.jar
# 暴露容器端口为8080 Docker镜像告知Docker宿主机应用监听了指定端口
EXPOSE 8080
# 容器启动时执行的命令
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPT /usr/local/app.jar"]

2. 前端静态资源的Dockerfile模板

1
2
3
4
5
6
7
# 指定基础镜像
FROM registry.cn-hangzhou.aliyuncs.com/songwh/nginx:stable-alpine
EXPOSE 80
# 拷贝Nginx的配置文件
COPY nginx.conf /etc/nginx/conf.d/nginx.conf
# 拷贝编译后的文件到NGINX的文件目录
COPY dist /usr/share/nginx/html

注:前端的镜像构建只是将静态资源赋值到NGINX的目录中,但是前端资源的目标文件构建还是需要CICD的支持,编译构建目标文件的命令是

1
2
3
4
5
# input your command here
# cnpm 构建vue的时候会出现一些莫名其妙的问题,这里建议用npm并指定境内仓库源
# cnpm install
npm install --registry=https://registry.npm.taobao.org
npm run build:prod
-------------本文结束感谢您的阅读-------------