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
相关推荐
中草药z1 分钟前
【Spring】深入解析 Spring 原理:Bean 的多方面剖析(源码阅读)
java·数据库·spring boot·spring·bean·源码阅读
信徒_9 分钟前
常用设计模式
java·单例模式·设计模式
神仙别闹14 分钟前
基于C#实现的(WinForm)模拟操作系统文件管理系统
java·git·ffmpeg
小爬虫程序猿15 分钟前
利用Java爬虫速卖通按关键字搜索AliExpress商品
java·开发语言·爬虫
组合缺一20 分钟前
Solon v3.0.5 发布!(Spring 可以退休了吗?)
java·后端·spring·solon
程序猿零零漆22 分钟前
SpringCloud 系列教程:微服务的未来(二)Mybatis-Plus的条件构造器、自定义SQL、Service接口基本用法
java·spring cloud·mybatis-plus
猿来入此小猿24 分钟前
基于SpringBoot在线音乐系统平台功能实现十二
java·spring boot·后端·毕业设计·音乐系统·音乐平台·毕业源码
愤怒的代码38 分钟前
Spring Boot对访问密钥加解密——HMAC-SHA256
java·spring boot·后端
带多刺的玫瑰38 分钟前
Leecode刷题C语言之切蛋糕的最小总开销①
java·数据结构·算法
栗豆包1 小时前
w118共享汽车管理系统
java·spring boot·后端·spring·tomcat·maven