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
相关推荐
泡泡以安6 分钟前
【Android逆向工程】第3章:Java 字节码与 Smali 语法基础
android·java·安卓逆向
毕设源码-朱学姐6 小时前
【开题答辩全过程】以 工厂能耗分析平台的设计与实现为例,包含答辩的问题和答案
java·vue.js
网络小白不怕黑6 小时前
Docker容器网络:四大模式解析与自定义网络
运维·docker·容器
Spring AI学习7 小时前
Spring AI深度解析(9/50):可观测性与监控体系实战
java·人工智能·spring
java1234_小锋8 小时前
Spring IoC的实现机制是什么?
java·后端·spring
xqqxqxxq8 小时前
背单词软件技术笔记(V2.0扩展版)
java·笔记·python
消失的旧时光-19439 小时前
深入理解 Java 线程池(二):ThreadPoolExecutor 执行流程 + 运行状态 + ctl 原理全解析
java·开发语言
哈哈老师啊9 小时前
Springboot学生综合测评系统hxtne(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·数据库·spring boot
4311媒体网9 小时前
帝国cms调用文章内容 二开基本操作
java·开发语言·php
zwxu_9 小时前
Nginx NIO对比Java NIO
java·nginx·nio