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
相关推荐
秋天的怀念_David2 小时前
算法一千零一夜 · 第二十八夜 注册
java·程序人生·算法
Java码农也是农2 小时前
Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选
java·spring boot·spring·事务
java_logo2 小时前
Docker 部署 ReMe:轻松搭建 AI Agent 记忆管理平台
人工智能·docker·容器·ai agent·轩辕镜像·reme·agentscope-ai
小南家的青蛙2 小时前
基于Spring Boot 2.x开发的微服务访问Redis的方案
redis·springboot
学长毕设3 小时前
基于SpringBoot的游乐园管理系统-附源码
java·spring boot·后端
不庸.3 小时前
WPScan 实战入门:从 Docker 靶场到弱密码爆破
运维·安全·web安全·docker·容器·安全性测试·wpscan
SimonKing3 小时前
震惊:怎么回事,opencode一轮对话耗尽免费额度
java·后端·程序员
装不满的克莱因瓶3 小时前
【SpringAI Alibaba】ReactAgent响应SSE实时流式传输案例实战
java·人工智能·ai·sse·springai
杨凯凡3 小时前
Spring Boot 文件上传怎么做才安全?流式落盘、路径校验与数据库一致性实战
java·spring boot·文件上传·后端安全·数据库一致性
这个昵称不容易4 小时前
旅游管理系统的设计与实现(SpringBoot + MySQL + Vue 前后端分离)
java·springboot·毕设