0
点赞
收藏
分享

微信扫一扫

Docker的一些分析和前端工程打包实践

kolibreath 2022-04-14 阅读 88

Docker架构分析

Docker说是C/S架构的,Docker的架构图如下:

怎么看出是C/S架构呢,我做了个验证,

服务器:CentOS + Docker

本机:Win10 + Docker

本机装好windows版Docker后,用命令查看:

本机没有什么image,也没有容器在跑。

在本机的环境变量中加上DOCKER_HOST,就切换到了服务器上的环境了:

再在本机执行docker命令:

看到的是服务器上的images和docker,可以看到服务器上正在用容器跑harbor。

所以就可以看出来了确实是C/S模式。再进一步验证一下,

一个npm build好的前端工程目录+Dockerfile,执行docker build命令,就会把本地的文件发往服务器端去打包,公司的网络做了限制了,往服务器发包失败,要是成功了我还看不出在哪儿打的包,失败了就看出来了要往服务器发送本地文件去打包。

 前端工程打包

试了两种打包方式:

把npm build出来的东西打包

执行npm run build命令得到dist目录,Dockerfile内容如下,

FROM nginx:alpine
COPY /dist /usr/share/nginx/html

 再执行docker build -t xxxxxxx .,打包后docker push推到harbor

直接通过源码打包

直接在前端工程下建立Dockerfile

FROM node:14-alpine as builder

ENV PROJECT_ENV production
# ENV NODE_ENV production

WORKDIR /code

ADD package.json package-lock.json /code
RUN npm ci

ADD . /code
RUN npm run build:prod

# 选择更小体积的基础镜像
FROM nginx:alpine
COPY --from=builder /code/dist /usr/share/nginx/html

 再执行docker build -t xxxxxxx .,打包后docker push推到harbor。

 用docker iamges --digests -a 看看,可以看到Dockerfile的每行指令,一层一层的往镜像上加东西,最开始的node镜像119M,考两个文件进去120M,执行 npm run build就变成了500多M,最后以nginx镜像为基础加上dist又变成了29M。

再用docker inspect查看一个镜像,可以看到这是哪条命令出来的镜像:

 最后分享一个图:

 

举报

相关推荐

0 条评论