Skip to content

wbuntu/images

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

images

自定义镜像合集,整合容器环境使用的镜像和构建脚本

1. 镜像目录

1.1 系统

1.2 开发环境

1.3 代理工具

1.4 AI

1.5 其他

1.6 废弃

2. 备忘录

2.1 Makefile

  • make image: 默认使用docker和本机架构构建镜像
  • make release: 默认使用buildkit构建镜像,默认构建linux/amd64与linux/arm64两种架构(若应用支持)
  • make all: 构建多个release版本

2.2 Docker

文档链接:Dockerfile reference

创建buildx构建实例

docker buildx create --use --name multiarch --platform linux/amd64,linux/arm64

安装QEMU

docker run --privileged --rm tonistiigi/binfmt --install all

多架构变量

  • TARGETPLATFORM: 目标镜像的平台,例如linux/amd64,linux/arm/v7, windows/amd64
  • TARGETOS: TARGETPLATFORM 的操作系统部分,如linux,windows
  • TARGETARCH: TARGETPLATFORM 的架构部分,如amd64,arm64
  • TARGETVARIANT: TARGETPLATFORM 的变体组件,如v7
  • BUILDPLATFORM: 执行构建的节点平台
  • BUILDOS: BUILDPLATFORM 的操作系统组件
  • BUILDARCH: BUILDPLATFORM 的架构组件
  • BUILDVARIANT: BUILDPLATFORM 的变体组件

2.3 交叉编译

buildkitd使用qemu来模拟目标架构执行多架构编译,但是运行效率很低,若编译工具支持交叉编译,可以使用本机架构完成编译,然后将编译出的二进制文件拷贝到目标架构的基础镜像中制作镜像,以go语言为例,如下:

# buildkit跨架构编译缓慢,统一使用本机架构进行交叉编译
FROM --platform=$BUILDPLATFORM wbuntu/golang:1.19 AS builder
ARG TARGETARCH
ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=$TARGETARCH
WORKDIR /custom-service
COPY . /custom-service
RUN make build
# 编译完成后拷贝到目标架构的基础镜像中
FROM --platform=$TARGETPLATFORM wbuntu/alpine:3.15
COPY --from=builder /custom-service/custom-service /usr/bin/custom-service
CMD ["/usr/bin/custom-service","-c","/etc/custom-service/config.toml"]

About

custom image collections

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published