Docker多阶段构建
发表于|更新于|容器
构建 Docker 镜像的时候,我们可以在机器上直接构建,也可以使用容器来构建,保证环境的统一性, 通过容器来构建会有一个问题,就是构建使用到的工具并不需要带入到真正的运行环境, 比如说使用 nodejs 的前端项目, 构建的时候需要 nodejs 或者 npm, 但是运行的时候需要的是 nginx. 多阶段构建即为构建完成后直接将代码塞进运行容器, 不会带入构建环境.
编写 Dockerfile
vim Dockerfile
1 | FROM node:14.20.1-buster AS build |
文章作者: 张理坤
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
相关推荐

2025-03-13
使用 Docker 搭建集群版 Elasticsearch 学习环境
一般来说,学习 ES 都是自己先搭建几台虚拟机,然后在虚拟机里部署 ES 集群,这样做资源消耗比较大,一般的电脑都没有这么高的配置,我们可以使用 Docker 来快速部署一套 Elasticsearch 集群,这里以 3 节点集群为例: 准备 Docker 网络集群节点之间是通过 ip 进行交互的,所以需要固定一下 ip,固定 ip 之前需要先创建一个 Docker 私有网络,并固定网段 (网段不要和你的内网冲突) 集群版 Elasticsearch 需要生成证书默认生成 3 年证书,我指定生成了 100 年的证书, 生成到了 certs 目录下。 指定 IP 运行容器我这里将数据持久化到了 docker 卷中,通过 docker volume ls 可以查看。 elasticsearch1 elasticsearch2 elasticsearch3 初始化密码需要等待服务启动后才可设置初始化密码,命令只能生成一次。 部署 kibana准备 kibana.yml密码按照实际情况修改 准备 kibana.sh
2026-09-22
树莓派常用操作记录
安装 Docker替换成清华源 清华源地址https://mirrors.tuna.tsinghua.edu.cn/help/docker-ce/ 替换软件源中科大源https://mirrors.ustc.edu.cn/help/raspbian.html清华源https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
2026-03-01
使用kubeadm部署一套高可用k8s集群1.34 for Ubuntu
基于 ubuntu 使用 kubeadm 搭建集群, centos部署文档, 有疑问的地方可以看 官方文档 准备机器 我的机器详情如下, 配置至少为 4C4G hostname IP 作用 master1 10.0.0.11 k8s master 节点 master2 10.0.0.12 k8s master 节点 master3 10.0.0.13 k8s master 节点 worker1 10.0.0.21 k8s worker 节点 worker2 10.0.0.22 k8s worker 节点 每台机器都做域名解析,或者绑定 hosts(可选但建议) 基础环境配置 基础环境是不管 master 还是 worker 都需要的环境 禁用 swap 确保每个节点上 MAC 地址和 product_uuid 的唯一性 sudo cat /sys/class/dmi/id/product_uuid 修改 hostname 允许 iptables 检查桥接流量 关闭防火墙 安装 runtimeContainerdDocker先决条...
2025-04-05
安装插件方式来运行grafana-image-renderer
安装可以使用命令: 如果不能正常访问网络,或者下载速度太慢,可以使用离线包:到这里https://grafana.com/grafana/plugins/grafana-image-renderer/?tab=installation下载离线包,然后放到 plugins 文件夹下。需要注意下 plugins 文件夹的位置,可能使用命令安装的路径和真实的 plugins 目录不一致。 如果插件启动失败,报错:可以检查下 plugins/grafana-image-renderer/chrome-headless-shell/linux-136.0.7101.0/chrome-headless-shell-linux64 这个程序能否正常运行,如果报错 需要安装 apt install -y libasound2t64 完整配置容器Dockerfile: kubernetes 部署配置k8s 运行的时候,需要配置 root_url 被这个坑了很久,完整的配置文件如下:

2025-05-28
PHP应用容器化遇到的一些问题
这里以 WordPress 为例,我们不用官方的镜像,而是用 php 镜像 php 官方有个自带 apache 的版本,如:php:8.1.32-apache, 建议用这个版本,这个版本不用考虑 Nginx 和 php 的文件共享问题,启动容器: 自定义 php 配置文件比如调整 PHP 上传文件大小限制 docker run 的时候挂载 php.ini php.ini 增加 安装 Core 扩展这个时候说明 php 正常工作了,但是缺扩展。 安装其他扩展 比如安装 imagick,整合到 dockerfile 里构建个新的镜像。imagick 使用 pecl 安装 安装自定义 PHP 扩展比如安装主题的时候需要安装主题文件提供的扩展: 查看 php 扩展目录 把这个目录挂载出来,将扩展文件放进去。或者挂载一个新的目录 然后 php.ini 中指定扩展路径 WordPress 常见警告post_max_size 的值小于 upload_max_filesize 这个问题需要配置一下 php.ini 反向代理问题WordPress 经过 Ngin...
2026-09-22
快速搭建ipsec Vpn
安装 Docker 启动服务 将 ikev2-vpn-data 文件复制到本地在 ikev2-vpn-data 目录中,证书或配置文件的位置: 操作系统 文件名 备注 Windows 和 Linux vpnclient.p12 Windows10 & 11 按照下文配置 VPN Android vpnclient.sswan 安卓需要安装 strongSwan 软件 Apple 设备 vpnclient.mobileconfig 导入描述文件即可 windows 客户端配置导入证书 证书会导入到 受信任的根证书颁发机构 IKEv2 VPN CA 另外,你也可以手动导入 .p12 文件。在导入证书后,你必须确保将客户端证书放在 “ 个人 -> 证书 “ 目录中,并且将 CA 证书放在 “ 受信任的根证书颁发机构 -> 证书 “ 目录中。 创建 VPN 连接在 Windows 计算机上添加一个新的 IKEv2 VPN 连接。对于 Windows 8.x 和 10,推荐从命令提示符运行以下命令创建 VPN 连接,以达到更佳的安全...
公告
此博客为我记录运维工作总结所用,供网友阅读参考,如有侵权,请通知我,我会核实后进行处理。
欢迎加博主微信,进微信运维技术交流群: