diff --git a/build/docker/Dockerfile.baremetal-base b/build/docker/Dockerfile.baremetal-base index 3b1054b5d0..fb40e97c75 100644 --- a/build/docker/Dockerfile.baremetal-base +++ b/build/docker/Dockerfile.baremetal-base @@ -1,3 +1,6 @@ +FROM registry.cn-beijing.aliyuncs.com/yunionio/centos-build:1.1-4 as build +RUN yum install -y https://iso.yunion.cn/3.6/rpms/packages/host/baremetal-pxerom-1.1.0-20072810.x86_64.rpm + FROM frolvlad/alpine-glibc:glibc-2.28 MAINTAINER "Yaoqi Wan " @@ -16,17 +19,17 @@ RUN mkdir -p /opt/cloud/yunion/baremetal RUN wget -O /opt/cloud/yunion/baremetal/pci.ids http://pci-ids.ucw.cz/v2.2/pci.ids # download baremetal-pxerom-*.x86_64.rpm and unpack rpm in current directory -COPY ./opt/cloud/yunion/baremetal/bootia32.efi /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/bootx64.efi /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/chain.c32 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/initramfs /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/isolinux.bin /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/kernel /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/ldlinux.c32 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/ldlinux.e32 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/ldlinux.e64 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/libcom32.c32 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/libutil.c32 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/lpxelinux.0 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/menu.c32 /opt/cloud/yunion/baremetal -COPY ./opt/cloud/yunion/baremetal/pxelinux.0 /opt/cloud/yunion/baremetal +COPY --from=build /opt/cloud/yunion/baremetal/bootia32.efi /opt/cloud/yunion/baremetal +COPY --from=build /opt/cloud/yunion/baremetal/bootx64.efi /opt/cloud/yunion/baremetal +COPY --from=build /opt/cloud/yunion/baremetal/chain.c32 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/initramfs /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/isolinux.bin /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/kernel /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/ldlinux.c32 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/ldlinux.e32 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/ldlinux.e64 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/libcom32.c32 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/libutil.c32 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/lpxelinux.0 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/menu.c32 /opt/cloud/yunion/baremetal +COPY --from=build ./opt/cloud/yunion/baremetal/pxelinux.0 /opt/cloud/yunion/baremetal diff --git a/pkg/hostman/diskutils/fsutils/fsutils.go b/pkg/hostman/diskutils/fsutils/fsutils.go index 7751a11364..595aa29f5f 100644 --- a/pkg/hostman/diskutils/fsutils/fsutils.go +++ b/pkg/hostman/diskutils/fsutils/fsutils.go @@ -120,7 +120,18 @@ func ResizeDiskFs(diskPath string, sizeMb int) error { var cmds = []string{"parted", "-a", "none", "-s", diskPath, "--", "unit", "s", "print"} lines, err := procutils.NewCommand(cmds[0], cmds[1:]...).Output() if err != nil { - log.Errorf("resize disk fs fail: %s", err) + hasPartTable := func() bool { + for _, line := range strings.Split(string(lines), "\n") { + if strings.Contains(line, "Partition Table") { + return true + } + } + return false + } + if hasPartTable() { + return nil + } + log.Errorf("resize disk fs fail, output: %s , error: %s", lines, err) return err } parts, label := ParseDiskPartition(diskPath, lines)