可以看到它是基于openjdk这个基础镜像来创建的,先去下载maven的包,然后进行了安装 。然后又设置了MAVEN_HOME和MAVEN_CONFIG这两个环境变量,最后通过mvn-entrypoing.sh来进行了启动 。
前端服务的两阶段构建我有一个前端服务,目录结构如下:
$ ls frontend/myaccount/ resources/ third_party/复制代码
myaccount目录下是放置的js,vue等,resources放置的是css,images等 。third_party放的是第三方应用 。
这里采用了两阶段构建,即采用上一阶段的构建结果作为下一阶段的构建数据
FROM node:alpine as builderWORKDIR '/build'COPY myaccount ./myaccountCOPY resources ./resourcesCOPY third_party ./third_partyWORKDIR '/build/myaccount'RUN npm installRUN npm rebuild node-sassRUN npm run buildRUN ls /build/myaccount/distFROM NginxEXPOSE 80COPY --from=builder /build/myaccount/dist /usr/share/nginx/html复制代码
需要注意结尾的 --from=builder这里和开头是遥相呼应的 。
总结我相信看完dockerfile指令,你看任何一个dockerfile应该都没有太大问题,不记得的命令回来翻一下就行了 。如果你觉得还可以,关注下哟 。
作者:think123
链接:https://juejin.im/post/5e60745d518825492e4965ed
推荐阅读
- 个人交社保、单位交社保,差别到底在哪里?一文读懂
- 看完这篇,再也不用焦虑如何写dockerfile了
- 一文搞懂交换基础知识
- 一文读懂常用开源许可证
- 抽水马桶是如何工作的?一文看懂虹吸原理
- 一文讲弄懂什么是vlan、三层交换机、网关、子网掩码
- 如何玩转 HTTP 3?
- 一文教您如何实现持续集成服务器环境搭建
- 一文搞定MySQL性能调优
- 一文了解神经网络工作原理