当前位置: 首页 > news >正文

好的宝安网站建设南阳新闻最新消息

好的宝安网站建设,南阳新闻最新消息,青年人爱看的网站,wordpress免费服务器大多数带有Docker官方标识的镜像都提供了多架构支持。如#xff1a;busybox镜像支持amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, and s390x。当你在amd64设备上运行容器时#xff0c;会拉取amd64镜像。 当你需要构建多平台镜像时#xff0c;可以用 --platf…大多数带有Docker官方标识的镜像都提供了多架构支持。如busybox镜像支持amd64, arm32v5, arm32v6, arm32v7, arm64v8, i386, ppc64le, and s390x。当你在amd64设备上运行容器时会拉取amd64镜像。 当你需要构建多平台镜像时可以用 --platform 参数指定目标平台但是通常情况下你只能一次构建一个单一架构平台的镜像。如果想要一次构建多平台镜像你需要使用docker container build driver可以使用buildx插件进行配置替换打包命令。 QEMU 跨平台打包可以使用QEMU但是它比本机构建慢得多依赖QEMU将本机指令转义为目标架构指令从而实现跨平台编译。一般Linux kernel 4.8以后版本支持binfmt-support 2.1.7及以上版本的平台都能支持跨平台编译。你可以用以下步骤快速开启 docker run --privileged --rm tonistiigi/binfmt --install all为不同架构平台创建本地节点--apend可以追加到同一个构建器中 docker buildx create --use --name mybuild node-amd64 mybuild docker buildx create --append --name mybuild node-arm64同时构建多平台镜像 docker buildx build --platform linux/amd64,linux/arm64 . 这里用buildx插件代替默认build一次打包多平台镜像不做过多介绍。 交叉编译 docker可以轻松打包多平台的镜像但是目标程序的交叉编译取决于开发编译环境。Golang就很容易实现交叉编译结合docker多阶段构建技术可以实现一次编译打包多平台镜像。 首先安装buildx插件 下载  重命名并放到docker插件目录里 mv buildx-v0.11.2.linux-amd64 docker-buildx mkdir .docker/cli-plugins -p mv docker-buildx .docker/cli-plugins/ chmod x .docker/cli-plugins/docker-buildx docker-compose也可以作为插件放到插件目录里 mv docker-compose .docker/cli-plugins/ 使用时可用如下的命令无需使用docker-compose这是题外话。 docker compose up -d 其次创建构建器 $ docker buildx ls NAME/NODE DRIVER/ENDPOINT STATUS BUILDKIT PLATFORMS mybuilder * docker-containermybuilder0 unix:///var/run/docker.sock running v0.12.3 linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6 default dockerdefault default running v0.8.2eeb7b65 linux/amd64, linux/386, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/arm/v7, linux/arm/v6 ls命令列出已有的构建器default是docker默认的构建器mybuilder是我创建的构建器可以用如下命令进行创建 docker buildx create --name mybuilder --bootstrap --use这条命令会创建mybuilder构建器并启动设置为默认构建器。 到这里环境就算配置好了但是要想编译打包多平台镜像还需要编辑Dockerfile FROM --platform$BUILDPLATFORM golang:latest AS builder ARG TARGETARCH RUN apt-get update apt-get install -y gcc-aarch64-linux-gnu WORKDIR /app COPY . . RUN go env -w GOOSlinux GOARCH$TARGETARCH CGO_ENABLED1 GOPROXYhttps://goproxy.cn,direct RUN if [ $TARGETARCH arm64 ]; then go env -w ARaarch64-linux-gnu-ar CCaarch64-linux-gnu-gcc CXXaarch64-linux-gnu-g; fi RUN go mod tidy RUN go build -a -ldflags -extldflags -static -o server main.goFROM alpine:latest RUN set -eux sed -i s/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g /etc/apk/repositories RUN apk update apk add sqlite WORKDIR /server RUN mkdir -p /server/data COPY --frombuilder /app/server /app/config.docker.yaml ./ COPY --frombuilder /app/resource/cert ./resource/cert EXPOSE 8660 ENTRYPOINT ./server -c config.docker.yaml 上面的Dockerfile采用多阶段构建方式支持交叉编译多平台打包。 第一阶段进行交叉编译 第二阶段进行目标平台镜像打包 里面用到docker-container驱动的环境变量有 BUILDPLATFORM  编译平台即当前宿主机的平台架构 TARGETPLATFORM BUILDARCH TARGETARCH 目标平台架构即多平台编译打包时的目标架构 GOARCH$TARGETARCH 指定了Go编译目标架构  golang:latest、alpine:latest镜像都是支持多架构的镜像golang:latest是基于debian构建为了交叉编译需要安装交叉编译环境 apt-get install -y gcc-aarch64-linux-gnu 因为Go程序中用到了cgo特性需要打开它 CGO_ENABLED1 同时如果目标平台是arm64的话需配置go gcc等编译器环境变量 RUN if [ $TARGETARCH arm64 ]; then go env -w ARaarch64-linux-gnu-ar CCaarch64-linux-gnu-gcc CXXaarch64-linux-gnu-g; fi 最后执行buildx命令 docker buildx build --platform linux/arm64,linux/amd64 -t 172.16.60.12:8888/star/iot-go . --push 编译打包多平台镜像并推送到仓库中。也可以输出单一平台并保存到本地 docker buildx build --platform linux/arm64 -t star/iot-go . --load 参考资料 Multi-platform images | Docker Docs How to use docker buildx to build multi-architecture Go images
http://www.laogonggong.com/news/125290.html

相关文章:

  • 手机网站jquery底部导航菜单wordpress ushare
  • 网站制作公司crm客户管理系统wordpress 本地编辑器
  • 建设部人才中心网站建设厅网站进不去
  • 网站建站方案深圳科技有限公司 网站建设
  • 承德网站建设网页设计与应用论文
  • 大良营销网站建设特色h5课件制作软件
  • 建设网站框架燕莎做网站
  • 新闻资讯型网站开发北京建站者公司
  • 深圳做网站大公司开发工程师是什么
  • 怎样做自己的销售网站6网站建设与推广实训总结
  • flash网站模板 asp来宾绍兴seo网站托管方案
  • 本地网站建设公司网页设计公司简介代码
  • 金融公司网站制作网页不能下载的wordpress
  • 辽宁省网站制作学校网站的建设费用
  • 平板电脑可以做网站不iis7 部署静态网站
  • 成都建站费用微信小程序怎么加入我的小程序
  • 只有虚拟主机可以做网站吗软件外包公司是干什么的
  • 北京高端网站建设规划福田瑞沃小金刚c版
  • 网络教学平台长沙理工大学百度推广seo自学
  • 网站建设集群化的必要推广图片设计如何简洁好看
  • 想要提高网站排名应该怎么做dede网站5.7广告去除
  • 智能网站建设步骤乐清网站制作公司招聘
  • 网站缩略图代码网站流量导入是什么意思
  • 网站建设专业的公司排名js做论坛网站
  • 网站中英文要怎么做百度一下你就知道搜索引擎
  • 珠海网站建建站 报价
  • 各大网站图片网络优化工程师是干什么的
  • 国外购物网站赏析精通网站建设 pdf
  • 投资网站源码百度免费推广怎么做
  • 兰州网站建设索王道下拉wordpress忘记了密码