docker--打包应用

目录

[Docker Dockerfile](#Docker Dockerfile)

SpringBoot应用构建

Dockerfile:

编译:

Vue前端项目打包

编译打包

nginx的配置文件default.conf

dockerfile

构建镜像

运行

Docker Dockerfile

Dockerfile 是一个用来构建镜像的文件,内容包含了一 条条构建镜像所需的指令和说明。

bash 复制代码
FROM nginx

RUN echo '这是一个本地构建的nginx镜像' >

/usr/share/nginx/html/index.html

FROM:定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。

RUN:用于执行后面跟着的命令行命令。有以下俩种格式:

shell 格式:RUN <命令行命令>

<命令行命令>等同于,在终端操作的 shell 命 令。

exec 格式:RUN ["可执行文件", "参数1", "参数2"]

例如:

RUN ["./test.php", "dev", "offline"]

等价于 RUN ./test.php dev offline

注意:Dockerfile 的指令每执行一次都会在 docker 上新 建一层。所以过多无意义的层,会造成镜像膨胀过大。 例如:

FROM ubuntu

run apt-get update || apt-get update #两次

重复apt-get update 防止更新失败

run apt-get install iputils-ping

run ping www.baidu.com

以上执行会创建 3 层镜像。可简化为以下格式:

FROM ubuntu run

apt-get update || apt-get update \

&& apt-get install iputils-ping \

&& ping www.baidu.com

SpringBoot应用构建

将SpringBoot jar包与Dockerfile放在一起构建。

Dockerfile:

bash 复制代码
FROM openjdk:11
VOLUME /tmp
expose 3000  #expose 暴露端口号
COPY *.jar /opt/app.jar
ENTRYPOINT ["java","-jar","/opt/app.jar"]

编译:

bash 复制代码
docker build -t app .

-t app 指编译后的镜像文件

批量编译:build.bat文件

bash 复制代码
docker build -t erp:1.0 -f ./Dockerfile ../by-main/target
docker images
@pause

Vue前端项目打包

编译打包

bash 复制代码
pnpm build # npm run build

nginx的配置文件default.conf

bash 复制代码
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
location /api/ {
add_header 'Access-ControlAllow-Origin' '*';
add_header 'Access-ControlAllow-Methods' 'POST,GET,OPTIONS';
add_header 'Access-ControlAllow-Headers' 'Authorization'; #跨域设置
proxy_pass
http://123.57.206.19:8085;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

dockerfile

bash 复制代码
FROM nginx
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
COPY dist/ /usr/share/nginx/html/

构建镜像

bash 复制代码
docker build -t web:v1 .

运行

bash 复制代码
docker run -it -p 8086:80 web:v1
相关推荐
s:1031 小时前
【框架】参考 Spring Security 安全框架设计出,轻量化高可扩展的身份认证与授权架构
java·开发语言
Karoku0662 小时前
【CI/CD】CI/CD环境搭建流程和持续集成环境配置
运维·ci/cd·docker·容器·kubernetes·prometheus
weixin_438335403 小时前
springboot多实例部署时,@Scheduled注释的方法重复执行
springboot
南山十一少4 小时前
Spring Security+JWT+Redis实现项目级前后端分离认证授权
java·spring·bootstrap
427724006 小时前
IDEA使用git不提示账号密码登录,而是输入token问题解决
java·git·intellij-idea
chengooooooo6 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
李长渊哦6 小时前
常用的 JVM 参数:配置与优化指南
java·jvm
计算机小白一个6 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
南宫生9 小时前
力扣每日一题【算法学习day.132】
java·学习·算法·leetcode
!!!5259 小时前
华为云镜像加速器
docker·容器·华为云