🖊️
K8s-Testing
  • 从docker入门到k8s部署
  • 设备准备
  • 安装Docker
  • 拉取镜像和运行测试
    • 入门操作测试1
    • 入门操作测试2
    • 登录docker hub并上传镜像
    • 服务器间镜像文件快速复制
    • MySQL镜像安装和测试
    • 容器网络入门操作1
    • 容器网络入门操作2
    • 创建docker network
    • Wordpress+Mysql+nginx反向代理安装
  • Docker编排模板测试
    • Docker Compose入门介绍
    • 通过docker compose安装Wordpress
    • 通过docker compose安装wordpress:5-php7.2-fpm
  • Dockerfile测试
    • Dockerfile入门
    • Dockerfile多阶段构建
  • Prometheus和Grafana的单机编排
    • 通过nginx-prometheus-exporter监控nginx指标
    • 通过Grafana展示nginx容器指标
    • 通过docker compose部署Grafana和Prometheus
  • EFK单机编排
    • Filebeat收集nginx容器日志并同步到Elastic Cloud
    • 通过docker部署Elasticsearch并定制Kibana的Dashboard
    • 通过docker compose部署EFK
  • Kubernetes基础
    • Kubernetes基础知识
    • 通过Kubeadm部署K8s集群
    • K8s基本操作命令
    • k8s滚动发布
    • 通过K8s部署wordpress:5-php7.2-fpm
    • Ingress安装
Powered by GitBook
On this page

Was this helpful?

  1. Dockerfile测试

Dockerfile多阶段构建

Docker 17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 FROM 指令。但最后生成的镜像,仍以最后一条 FROM 为准,之前的 FROM 会被抛弃。

FROM [--platform=<platform>] <image> [AS <name>]

例如我们构建一个golang程序,需要用到go语言的编译环境,但把go语言的编译工具和库写到镜像里会十分浪费空间,这时候就可以用到多阶段构建,例如:

# 编译阶段 命名为 base
FROM golang:1.7.3 as base 
COPY app.go .
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o app .
# 运行阶段
FROM alpine:latest  
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=base /go/src/app .
CMD ["./app"]  

使用外部镜像作为stage

使用多阶段构建时,不仅可以从Dockerfile中创建的镜像中进行复制,还可以使用COPY –from指令从单独的image中复制,使用本地image名称,本地或Docker注册表中可用的标记或标记ID。 例如:

COPY --from=nginx:latest /etc/nginx/nginx.conf /usr/local/nginx/nginx.conf
PreviousDockerfile入门Next通过nginx-prometheus-exporter监控nginx指标

Last updated 5 years ago

Was this helpful?