mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-28 03:23:25 +08:00
docker build support buildx and arm architecture
This commit is contained in:
@@ -1,4 +0,0 @@
|
||||
/.git
|
||||
/vendor
|
||||
/cmd
|
||||
/pkg
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:1.0.0
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:v1.0.2
|
||||
|
||||
ADD ./_output/alpine-build/bin/ansibleserver /opt/yunion/bin/ansibleserver
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM alpine:3.11.6
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
MAINTAINER "Yousong Zhou <zhouyousong@yunionyun.com>"
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/apigateway /opt/yunion/bin/apigateway
|
||||
ADD ./_output/alpine-build/bin/apigateway /opt/yunion/bin/apigateway
|
||||
@@ -1,5 +1,5 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/climc-base:v20200308
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/climc-base:20200820
|
||||
|
||||
ADD ./build/climc/root/opt /opt
|
||||
|
||||
ADD ./_output/bin/climc ./_output/bin/*cli /opt/yunion/bin/
|
||||
ADD ./_output/alpine-build/bin/climc ./_output/alpine-build/bin/*cli /opt/yunion/bin/climc
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM frolvlad/alpine-glibc:glibc-2.28
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/cloudevent /opt/yunion/bin/cloudevent
|
||||
ADD ./_output/alpine-build/bin/cloudevent /opt/yunion/bin/cloudevent
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
COPY ./build/cloudid/root/opt/ /opt/
|
||||
ADD ./_output/bin/cloudid /opt/yunion/bin/cloudid
|
||||
ADD ./_output/alpine-build/bin/cloudid /opt/yunion/bin/cloudid
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/cloudnet /opt/yunion/bin/cloudnet
|
||||
ADD ./_output/alpine-build/bin/cloudnet /opt/yunion/bin/cloudnet
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/devtool /opt/yunion/bin/devtool
|
||||
ADD ./_output/alpine-build/bin/devtool /opt/yunion/bin/devtool
|
||||
@@ -1,4 +1,5 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
COPY ./build/esxi-agent/root/opt/ /opt/
|
||||
ADD ./_output/bin/esxi-agent /opt/yunion/bin/esxi-agent
|
||||
|
||||
ADD ./_output/alpine-build/bin/esxi-agent /opt/yunion/bin/esxi-agent
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/glance-base:latest
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/torrent:20200820
|
||||
|
||||
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
|
||||
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
ADD ./_output/bin/glance /opt/yunion/bin/glance
|
||||
ADD ./_output/alpine-build/bin/glance /opt/yunion/bin/glance
|
||||
@@ -1,18 +0,0 @@
|
||||
FROM frolvlad/alpine-glibc:glibc-2.28
|
||||
|
||||
MAINTAINER "Yaoqi Wan <wanyaoqi@yunionyun.com>"
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache tzdata ca-certificates qemu-img && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
ENV TZ Asia/Shanghai
|
||||
|
||||
# add executable file torrent
|
||||
# make cmd/torrent && ./scripts/bundle-libraries.sh _output/bin/bundles/torrent _output/bin/torrent
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
ADD ./_output/bin/torrent /opt/yunion/bin/torrent
|
||||
ADD ./_output/bin/.torrent.bin /opt/yunion/bin/.torrent.bin
|
||||
ADD ./_output/bin/bundles/torrent /opt/yunion/bin/bundles/torrent
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.2.0
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.3
|
||||
|
||||
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:v0.0.3
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:v0.2
|
||||
|
||||
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
|
||||
|
||||
@@ -6,6 +6,4 @@ ENV TZ Asia/Shanghai
|
||||
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
|
||||
ADD ./_output/bin/host-deployer /opt/yunion/bin/host-deployer
|
||||
ADD ./_output/bin/.host-deployer.bin /opt/yunion/bin/.host-deployer.bin
|
||||
ADD ./_output/bin/bundles/host-deployer /opt/yunion/bin/bundles/host-deployer
|
||||
ADD ./_output/alpine-build/bin/host-deployer /opt/yunion/bin/host-deployer
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/keystone /opt/yunion/bin/keystone
|
||||
ADD ./_output/alpine-build/bin/keystone /opt/yunion/bin/keystone
|
||||
@@ -0,0 +1,4 @@
|
||||
FROM alpine:3.11
|
||||
|
||||
RUN echo http://dl-cdn.alpinelinux.org/alpine/edge/testing >>/etc/apk/repositories
|
||||
RUN apk update && apk add kubectl && rm -rf /var/cache/apk/*
|
||||
@@ -1,4 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
|
||||
ADD ./_output/bin/logger /opt/yunion/bin/logger
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/alpine-build/bin/logger /opt/yunion/bin/logger
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
|
||||
ADD ./_output/bin/monitor /opt/yunion/bin/monitor
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/alpine-build/bin/monitor /opt/yunion/bin/monitor
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
COPY ./build/notify/root/opt/ /opt/
|
||||
ADD ./_output/bin/notify /opt/yunion/bin/notify
|
||||
ADD ./_output/alpine-build/bin/notify /opt/yunion/bin/notify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM frolvlad/alpine-glibc:glibc-2.28
|
||||
FROM alpine:3.11
|
||||
|
||||
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
COPY ./build/region/root/opt/ /opt/
|
||||
ADD ./_output/bin/region /opt/yunion/bin/region
|
||||
ADD ./_output/alpine-build/bin/region /opt/yunion/bin/region
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM alpine:3.11.3
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
ADD ./_output/alpine-build/bin/region-dns /opt/yunion/bin/region-dns
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/s3gateway /opt/yunion/bin/s3gateway
|
||||
ADD ./_output/alpine-build/bin/s3gateway /opt/yunion/bin/s3gateway
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/bin/scheduler /opt/yunion/bin/scheduler
|
||||
ADD ./_output/alpine-build/bin/scheduler /opt/yunion/bin/scheduler
|
||||
@@ -0,0 +1,16 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
MAINTAINER "Yaoqi Wan <wanyaoqi@yunionyun.com>"
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache tzdata ca-certificates qemu-img && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
ENV TZ Asia/Shanghai
|
||||
|
||||
# add executable file torrent
|
||||
# make cmd/torrent
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
ADD ./_output/alpine-build/bin/torrent /opt/yunion/bin/torrent
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/openvswitch:2.10.4-0
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/openvswitch:2.10.4-1
|
||||
|
||||
MAINTAINER "Yousong Zhou <zhouyousong@yunion.cn>"
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/webconsole-base:latest
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/webconsole-base:v0.2
|
||||
|
||||
ADD ./_output/bin/webconsole /opt/yunion/bin/webconsole
|
||||
ADD ./_output/alpine-build/bin/webconsole /opt/yunion/bin/webconsole
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM yunion/kubectl:1.14.3
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/kubectl:1.18.6
|
||||
|
||||
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.1
|
||||
|
||||
ADD ./_output/bin/yunionconf /opt/yunion/bin/yunionconf
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
ADD ./_output/alpine-build/bin/yunionconf /opt/yunion/bin/yunionconf
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-3 as build
|
||||
ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
RUN mkdir -p /root/go/src/yunion.io/x/onecloud
|
||||
COPY . /root/go/src/yunion.io/x/onecloud
|
||||
|
||||
WORKDIR /root/go/src/yunion.io/x/onecloud
|
||||
RUN make cmd/esxi-agent
|
||||
|
||||
FROM FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
|
||||
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
COPY --from=build /root/go/src/yunion.io/x/onecloud/build/esxi-agent/root/opt/ /opt/
|
||||
COPY --from=build /root/go/src/yunion.io/x/onecloud/_output/bin/esxi-agent /opt/yunion/bin/esxi-agent
|
||||
@@ -0,0 +1,18 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-3 as build
|
||||
ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
RUN mkdir -p /root/go/src/yunion.io/x/onecloud
|
||||
COPY . /root/go/src/yunion.io/x/onecloud
|
||||
|
||||
WORKDIR /root/go/src/yunion.io/x/onecloud
|
||||
RUN make cmd/host
|
||||
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-base:v0.3
|
||||
|
||||
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
|
||||
|
||||
ENV TZ Asia/Shanghai
|
||||
|
||||
RUN apk add librados librbd
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
COPY --from=build /root/go/src/yunion.io/x/onecloud/_output/bin/host /opt/yunion/bin/host
|
||||
@@ -0,0 +1,25 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-3 as build
|
||||
ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
RUN mkdir -p /root/go/src/yunion.io/x/onecloud
|
||||
COPY . /root/go/src/yunion.io/x/onecloud
|
||||
|
||||
WORKDIR /root/go/src/yunion.io/x/onecloud
|
||||
RUN make cmd/torrent
|
||||
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
|
||||
|
||||
MAINTAINER "Yaoqi Wan <wanyaoqi@yunionyun.com>"
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache tzdata ca-certificates qemu-img && \
|
||||
rm -rf /var/cache/apk/*
|
||||
|
||||
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
|
||||
ENV TZ Asia/Shanghai
|
||||
|
||||
# add executable file torrent
|
||||
# make cmd/torrent
|
||||
RUN mkdir -p /opt/yunion/bin
|
||||
COPY --from=build /root/go/src/yunion.io/x/onecloud/_output/bin/torrent /opt/yunion/bin/torrent
|
||||
+71
-15
@@ -34,29 +34,30 @@ REGISTRY=${REGISTRY:-docker.io/yunion}
|
||||
TAG=${TAG:-latest}
|
||||
|
||||
build_bin() {
|
||||
local BUILD_ARCH=$2
|
||||
local BUILD_CC=$3
|
||||
local BUILD_CGO=$4
|
||||
case "$1" in
|
||||
climc)
|
||||
GOOS=linux make cmd/$1 cmd/*cli
|
||||
;;
|
||||
ansibleserver|\
|
||||
host|\
|
||||
region-dns|\
|
||||
vpcagent)
|
||||
docker run --rm \
|
||||
-v $SRC_DIR:/root/go/src/yunion.io/x/onecloud \
|
||||
-v $SRC_DIR/_output/alpine-build:/root/go/src/yunion.io/x/onecloud/_output \
|
||||
registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-1 \
|
||||
/bin/sh -c "set -ex; cd /root/go/src/yunion.io/x/onecloud; make cmd/$1; chown -R $(id -u):$(id -g) _output"
|
||||
registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-3 \
|
||||
/bin/sh -c "set -ex; cd /root/go/src/yunion.io/x/onecloud; $BUILD_ARCH $BUILD_CC $BUILD_CGO GOOS=linux make cmd/$1 cmd/*cli; chown -R $(id -u):$(id -g) _output"
|
||||
;;
|
||||
*)
|
||||
GOOS=linux make cmd/$1
|
||||
docker run --rm \
|
||||
-v $SRC_DIR:/root/go/src/yunion.io/x/onecloud \
|
||||
-v $SRC_DIR/_output/alpine-build:/root/go/src/yunion.io/x/onecloud/_output \
|
||||
registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:1.0-3 \
|
||||
/bin/sh -c "set -ex; cd /root/go/src/yunion.io/x/onecloud; $BUILD_ARCH $BUILD_CC $BUILD_CGO GOOS=linux make cmd/$1; chown -R $(id -u):$(id -g) _output"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
build_bundle_libraries() {
|
||||
for bundle_component in 'host-deployer' 'baremetal-agent'; do
|
||||
for bundle_component in 'baremetal-agent'; do
|
||||
if [ $1 == $bundle_component ]; then
|
||||
$CUR_DIR/bundle_libraries.sh _output/bin/bundles/$1 _output/bin/$1
|
||||
break
|
||||
@@ -71,11 +72,53 @@ build_image() {
|
||||
docker build -t "$tag" -f "$2" "$3"
|
||||
}
|
||||
|
||||
buildx_and_push() {
|
||||
local tag=$1
|
||||
local file=$2
|
||||
local path=$3
|
||||
local arch=$4
|
||||
docker buildx build -t "$tag" --platform "linux/$arch" -f "$2" "$3" --push
|
||||
}
|
||||
|
||||
push_image() {
|
||||
local tag=$1
|
||||
docker push "$tag"
|
||||
}
|
||||
|
||||
build_process() {
|
||||
local component=$1
|
||||
build_bin $component
|
||||
build_bundle_libraries $component
|
||||
img_name="$REGISTRY/$component:$TAG"
|
||||
build_image $img_name $DOCKER_DIR/Dockerfile.$component $SRC_DIR
|
||||
push_image "$img_name"
|
||||
}
|
||||
|
||||
build_process_with_buildx() {
|
||||
local component=$1
|
||||
local arch=$2
|
||||
|
||||
build_env="GOARCH=$arch"
|
||||
img_name="$REGISTRY/$component:$TAG"
|
||||
if [[ $arch == arm64 ]]; then
|
||||
img_name="$img_name-$arch"
|
||||
build_env="$build_env CC=aarch64-linux-musl-gcc"
|
||||
if [[ $component == host ]]; then
|
||||
build_env="$build_env CGO_ENABLED=1"
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$component" in
|
||||
host|esxi-agent)
|
||||
buildx_and_push $img_name $DOCKER_DIR/multi-arch/Dockerfile.$component $SRC_DIR $arch
|
||||
;;
|
||||
*)
|
||||
build_bin $component $build_env
|
||||
buildx_and_push $img_name $DOCKER_DIR/Dockerfile.$component $SRC_DIR $arch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ALL_COMPONENTS=$(ls cmd | grep -v '.*cli$' | xargs)
|
||||
|
||||
if [ "$#" -lt 1 ]; then
|
||||
@@ -97,9 +140,22 @@ for component in $COMPONENTS; do
|
||||
continue
|
||||
fi
|
||||
echo "Start to build component: $component"
|
||||
build_bin $component
|
||||
build_bundle_libraries $component
|
||||
img_name="$REGISTRY/$component:$TAG"
|
||||
build_image $img_name $DOCKER_DIR/Dockerfile.$component $SRC_DIR
|
||||
push_image "$img_name"
|
||||
if [[ $component == baremetal-agent ]]; then
|
||||
build_process $component
|
||||
continue
|
||||
fi
|
||||
|
||||
case "$ARCH" in
|
||||
all)
|
||||
for arch in "arm64" "amd64"; do
|
||||
build_process_with_buildx $component $arch
|
||||
done
|
||||
;;
|
||||
arm64|amd64)
|
||||
build_process_with_buildx $component $ARCH
|
||||
;;
|
||||
*)
|
||||
build_process $component
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user