Skip to content

Commit

Permalink
[WIP] Revert to one Dockerfile
Browse files Browse the repository at this point in the history
Signed-off-by: Loic Devulder <[email protected]>
  • Loading branch information
ldevulder committed Nov 27, 2023
1 parent 6dd2b14 commit dff41ec
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 59 deletions.
39 changes: 39 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ARG BASE_OS_IMAGE=opensuse/leap
ARG BASE_OS_VERSION=15.5
ARG GO_VERSION=1.20

FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION}-alpine AS elemental-bin
Expand Down Expand Up @@ -25,3 +27,40 @@ RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build \
-X github.com/rancher/elemental-toolkit/internal/version.version=${ELEMENTAL_VERSION} \
-X github.com/rancher/elemental-toolkit/internal/version.gitCommit=${ELEMENTAL_COMMIT}" \
-o /usr/bin/elemental

FROM ${BASE_OS_IMAGE}:${BASE_OS_VERSION} AS elemental-toolkit
# This helps invalidate the cache on each build so the following steps are really run again getting the latest packages
# versions, as long as the elemental commit has changed
ARG ELEMENTAL_COMMIT=""
ENV ELEMENTAL_COMMIT=${ELEMENTAL_COMMIT}

RUN ARCH=$(uname -m); \
[[ "${ARCH}" == "aarch64" ]] && ARCH="arm64"; \
zypper --non-interactive removerepo repo-update || true; \
zypper install -y --no-recommends xfsprogs \
parted \
util-linux-systemd \
e2fsprogs \
udev \
rsync \
grub2 \
dosfstools \
grub2-${ARCH}-efi \
squashfs \
mtools \
xorriso \
cosign \
gptfdisk \
lvm2

# Copy the built CLI
COPY --from=elemental-bin /usr/bin/elemental /usr/bin/elemental

# Fix for blkid only using udev on opensuse
RUN echo "EVALUATE=scan" >> /etc/blkid.conf

ENTRYPOINT ["/usr/bin/elemental"]

# Add to /system/oem folder so install/upgrade/reset hooks will run when running this container.
# Needed for boot-assessment
COPY pkg/features/embedded/cloud-config-essentials/system/oem /system/oem/
35 changes: 0 additions & 35 deletions Dockerfile.toolkit

This file was deleted.

33 changes: 9 additions & 24 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ PLATFORM?=linux/$(ARCH)
IMAGE_SIZE?=20G
PACKER_TARGET?=qemu.elemental-${ARCH}
REPO?=local/elemental-$(FLAVOR)
BIN_REPO?=local/elemental-bin
TOOLKIT_REPO?=local/elemental-toolkit
DOCKER?=docker
BASE_OS_IMAGE?=opensuse/leap
Expand Down Expand Up @@ -42,26 +41,15 @@ include make/Makefile.test

#----------------------- targets ------------------------

.PHONY: build-cli-with-docker
build-cli-with-docker:
$(DOCKER) build --platform $(PLATFORM) ${DOCKER_ARGS} \
--build-arg ELEMENTAL_VERSION=$(GIT_TAG) \
--build-arg ELEMENTAL_COMMIT=$(GIT_COMMIT) \
--target elemental-bin -t $(BIN_REPO):$(VERSION) .
.PHONY: build
build: build-cli-with-docker
build:
$(DOCKER) build --platform $(PLATFORM) ${DOCKER_ARGS} \
--build-arg BIN_REPO=$(BIN_REPO) \
--build-arg VERSION=$(VERSION) \
--build-arg ELEMENTAL_VERSION=${GIT_TAG} \
--build-arg ELEMENTAL_COMMIT=${GIT_COMMIT}
--build-arg BASE_OS_IMAGE=$(BASE_OS_IMAGE) \
--build-arg BASE_OS_VERSION=$(BASE_OS_VERSION) \
--file Dockerfile.toolkit \
--target elemental-toolkit -t $(TOOLKIT_REPO):$(VERSION) .

.PHONY: push-bin
push-bin:
$(DOCKER) push $(BIN_REPO):$(VERSION)

.PHONY: push-toolkit
push-toolkit:
$(DOCKER) push $(TOOLKIT_REPO):$(VERSION)
Expand Down Expand Up @@ -90,24 +78,21 @@ build-iso: build-os
--entrypoint /usr/bin/elemental ${TOOLKIT_REPO}:${VERSION} --debug build-iso --bootloader-in-rootfs -n elemental-$(FLAVOR).$(ARCH) \
--local --platform $(PLATFORM) --squash-no-compression -o /build $(REPO):$(VERSION)

.PHONY: clean-iso
clean-iso: build-os
$(DOCKER) run --rm -v $(ROOT_DIR)/build:/build --entrypoint /bin/bash $(REPO):$(VERSION) -c "rm -v /build/*.iso /build/*.iso.sha256 || true"

.PHONY: build-disk
build-disk: build-os
@echo Building ${ARCH} disk
mkdir -p $(ROOT_DIR)/build
$(DOCKER) run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(ROOT_DIR)/build:/build \
--entrypoint /usr/bin/elemental ${REPO}:${VERSION} --debug build-disk --unprivileged --expandable -n elemental-$(FLAVOR).$(ARCH) \
--local --squash-no-compression -o /build ${REPO}:${VERSION}
--entrypoint /usr/bin/elemental \
${TOOLKIT_REPO}:${VERSION} --debug build-disk --unprivileged --expandable -n elemental-$(FLAVOR).$(ARCH) --local \
--squash-no-compression -o /build ${REPO}:${VERSION}
dd if=$(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).raw of=$(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).img conv=notrunc
qemu-img convert -O qcow2 $(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).img $(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).qcow2
qemu-img resize $(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).qcow2 $(DISKSIZE)

.PHONY: clean-disk
clean-disk:
rm $(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).{raw,img,qcow2}
.PHONY: clean
clean:
rm -fv $(ROOT_DIR)/build/elemental-$(FLAVOR).$(ARCH).{raw,img,qcow2,iso,iso.sha256}

.PHONY: vet
vet:
Expand Down

0 comments on commit dff41ec

Please sign in to comment.