Skip to content
This repository has been archived by the owner on Oct 14, 2024. It is now read-only.

Update VMClarity CLI docker build to use vmclarity-tools-base #19

Merged
2 commits merged into from
Dec 8, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/reusable-build-and-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,13 +108,13 @@ jobs:
- name: Set build output env var
if: ${{ inputs.upload == 'true' }}
run: |
echo "OUTPUTS=type=docker,dest=/tmp/vmclarity.tar" >> $GITHUB_ENV
echo "OUTPUTS=type=docker,dest=/tmp/vmclarity-cli.tar" >> $GITHUB_ENV

- name: Build
uses: docker/build-push-action@v3
with:
context: .
tags: ghcr.io/openclarity/vmclarity:${{ inputs.image_tag }}
tags: ghcr.io/openclarity/vmclarity-cli:${{ inputs.image_tag }}
file: Dockerfile.cli
push: ${{ inputs.push }}
outputs: "${{ env.OUTPUTS }}"
Expand All @@ -130,4 +130,4 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: vmclarity
path: /tmp/vmclarity.tar
path: /tmp/vmclarity-cli.tar
4 changes: 2 additions & 2 deletions Dockerfile.cli
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
ARG VMCLARITY_TOOLS_BASE=ghcr.io/openclarity/vmclarity-tools-base@sha256:903d2c10351f811bdcb084f26f2b265f5c332de2891ab9f5fb7d60fed77e5ad7
FROM golang:1.19.4-alpine AS builder

ARG COMMIT_HASH
Expand All @@ -8,7 +9,6 @@ RUN apk add build-base
WORKDIR /build

# Copy go.mod & go.sum
WORKDIR /build
COPY go.* ./
RUN go mod download

Expand All @@ -22,7 +22,7 @@ COPY cli .
RUN CGO_ENABLED=0 go build -ldflags="-s -w \
-X 'github.com/openclarity/vmclarity/cli/pkg.GitRevision=${COMMIT_HASH}'" -o cli ./main.go

FROM alpine:3.16
FROM ${VMCLARITY_TOOLS_BASE}

WORKDIR /app

Expand Down
22 changes: 20 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ VERSION ?= $(shell git rev-parse HEAD)
DOCKER_REGISTRY ?= ghcr.io/openclarity
DOCKER_IMAGE ?= $(DOCKER_REGISTRY)/$(BINARY_NAME)
DOCKER_TAG ?= ${VERSION}
VMCLARITY_TOOLS_BASE ?=

# Dependency versions
GOLANGCI_VERSION = 1.49.0
Expand Down Expand Up @@ -37,10 +38,27 @@ cli: ## Build CLI
@(cd cli && go build -ldflags="-X 'github.com/openclarity/vmclarity/cli/pkg.GitRevision=${VERSION}'" -o bin/vmclarity main.go && ls -l bin/)

.PHONY: docker
docker: docker-backend ## Build All Docker images
docker: docker-backend docker-cli ## Build All Docker images

.PHONY: push-docker
push-docker: push-docker-backend ## Build and Push All Docker images
push-docker: push-docker-backend push-docker-cli ## Build and Push All Docker images

ifneq ($(strip $(VMCLARITY_TOOLS_BASE)),)
VMCLARITY_TOOLS_CLI_DOCKER_ARG=--build-arg VMCLARITY_TOOLS_BASE=${VMCLARITY_TOOLS_BASE}
endif

.PHONY: docker-cli
docker-cli: ## Build CLI Docker image
@(echo "Building cli docker image ..." )
docker build --file ./Dockerfile.cli --build-arg VERSION=${VERSION} \
--build-arg BUILD_TIMESTAMP=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ") \
--build-arg COMMIT_HASH=$(shell git rev-parse HEAD) ${VMCLARITY_TOOLS_CLI_DOCKER_ARG} \
-t ${DOCKER_IMAGE}:${DOCKER_TAG} .

.PHONY: push-docker-cli
push-docker-cli: docker-cli ## Build and Push CLI Docker image
@echo "Publishing cli docker image ..."
docker push ${DOCKER_IMAGE}:${DOCKER_TAG}

.PHONY: docker-backend
docker-backend: ## Build Backend Docker image
Expand Down