使用 docker buildx 實現多平台編譯

2021-10-10 07:19:00 字數 2498 閱讀 6751

docker registry api v2支援多 cpu 架構映象.

同時harbor v2也實現了docker registry api v2的支援.

當前 buildx 還是乙個實驗模式, 如需要支援, 需要進行如下配置

experimental開始嘗鮮模式

# vi ~/docker/daemon.json

buildx放到~/.docker/cli-plugins/目錄下

# 

buildx_version=v0.4.1

arch=$(uname -m)

[ "$" == "x86_64" ] && arch=amd64

[ "$" == "aarch64" ] && arch=arm64

mkdir -p ~/.docker/cli-plugins

wget -c -o docker-buildx\

&& chmod +x docker-buildx \

&& mv docker-buildx ~/.docker/cli-plugins/

安裝quem/usr/bin/qemu-$(uname -m)-static
# 

qemu_version=v5.0.0-2

wget -c -m)-static -o qemu-$(uname -m)-static \

&& chmod +x qemu-$(uname -m)-static \

&& mv qemu-$(uname -m)-static /usr/local/bin/qemu-$(uname -m)-static

# tree

# .# ├── alpine-bake

# │ └── alpine.dockerfile

# └── bake.hcl

# 1. create build

docker buildx create --use

# 2. compile

## build 命令列方式

### 注意, 命令列最後也有乙個代表 context 的 . (逗點)

docker buildx build --platform=linux/amd64,linux/arm64 .

## bake 檔案方式

docker buildx bake # default hcl file: docker-bake.json, docker-bake.hcl , docker-compose.yaml

docker buildx bake -f bake.hcl # -f alias to bake

docker buildx bake -f docker-compose.yml

group "default" 

target "alpine"

target "debian"

buildxbuildx bake

buildx hcl 支援的變數值

type target struct

multiple platforms feature is currently not supported for docker driver

當前模式不支援 buildx :

# 開始實驗模式 

# ~/docker/daemon.json

# docker version -f '}'

## true

auto-push is currently not implemented for docker driver

缺少 builder

# 建立乙個 builder 

docker buildx create --use # a random name

docker buildx create --user --name specified_name # specified name

failed to solve: rpc error: code = unknown desc = failed to load llb: runtime execution on platform linux/arm64 not supported
## 

# >>

本文由部落格**一文多發等運營工具平台 openwrite 發布

Response AddHeader使用例項收集

response.addheader refresh 60 url newpath newpage.asp 這等同於客戶機端元素 頁面轉向 response.status 302 object moved response.addheader location newpath newpage.asp...

使用ServletFileUpload實現上傳

1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為臨時和真是資料夾,那我們就需要獲取這倆個資料夾的絕對路徑,在servlet中我們可以這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory...

使用ServletFileUpload實現上傳

1.首先我們應該為上傳的檔案建乙個存放的位置,一般位置分為暫時和真是目錄,那我們就須要獲取這倆個目錄的絕對路徑,在servlet中我們能夠這樣做 然後建立檔案工廠即倉庫乙個引數表示存放多大後flush,fileitemfactory factory new diskfileitemfactory c...