Skip to content

Commit 668a13b

Browse files
authored
Build ubi image (#52)
Signed-off-by: Tamal Saha <tamal@appscode.com>
1 parent 175c627 commit 668a13b

File tree

2 files changed

+50
-4
lines changed

2 files changed

+50
-4
lines changed

Dockerfile.ubi

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Copyright AppsCode Inc. and Contributors.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
FROM {ARG_FROM}
16+
17+
LABEL org.opencontainers.image.source="https://github.com/appscode-cloud/license-proxyserver" \
18+
name="ACE License Proxyserver" \
19+
maintainer=AppsCode \
20+
vendor=AppsCode \
21+
version={ARG_TAG} \
22+
release={ARG_TAG} \
23+
summary="Automates license issuing process for all products from AppsCode" \
24+
description="Automates license issuing process for all products from AppsCode"
25+
26+
RUN mkdir -p /licenses
27+
COPY LICENSE /licenses/
28+
29+
RUN set -x \
30+
&& microdnf update -y \
31+
&& microdnf install -y tzdata \
32+
&& microdnf clean all
33+
34+
ENV TZ=Etc/UTC
35+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
36+
37+
ADD bin/{ARG_OS}_{ARG_ARCH}/{ARG_BIN} /{ARG_BIN}
38+
39+
USER 65534
40+
41+
ENTRYPOINT ["/{ARG_BIN}"]

Makefile

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,16 @@ ARCH := $(if $(GOARCH),$(GOARCH),$(shell go env GOARCH))
6969
# BASEIMAGE_PROD ?= gcr.io/distroless/static-debian12
7070
BASEIMAGE_PROD ?= alpine
7171
BASEIMAGE_DBG ?= debian:12
72+
BASEIMAGE_UBI ?= registry.access.redhat.com/ubi10/ubi-minimal
7273

7374
IMAGE := $(REGISTRY)/$(BIN)
7475
VERSION_PROD := $(VERSION)
7576
VERSION_DBG := $(VERSION)-dbg
77+
VERSION_UBI := $(VERSION)-ubi
7678
TAG := $(VERSION)_$(OS)_$(ARCH)
7779
TAG_PROD := $(TAG)
7880
TAG_DBG := $(VERSION)-dbg_$(OS)_$(ARCH)
81+
TAG_UBI := $(VERSION)-ubi_$(OS)_$(ARCH)
7982

8083
GO_VERSION ?= 1.25
8184
BUILD_IMAGE ?= ghcr.io/appscode/golang-dev:$(GO_VERSION)
@@ -97,6 +100,7 @@ BUILD_DIRS := bin/$(OS)_$(ARCH) \
97100

98101
DOCKERFILE_PROD = Dockerfile.in
99102
DOCKERFILE_DBG = Dockerfile.dbg
103+
DOCKERFILE_UBI = Dockerfile.ubi
100104

101105
DOCKER_REPO_ROOT := /go/src/$(GO_PKG)/$(REPO)
102106

@@ -296,15 +300,16 @@ $(OUTBIN): .go/$(OUTBIN).stamp
296300
# Used to track state in hidden files.
297301
DOTFILE_IMAGE = $(subst /,_,$(IMAGE))-$(TAG)
298302

299-
container: bin/.container-$(DOTFILE_IMAGE)-PROD bin/.container-$(DOTFILE_IMAGE)-DBG
303+
container: bin/.container-$(DOTFILE_IMAGE)-PROD bin/.container-$(DOTFILE_IMAGE)-DBG bin/.container-$(DOTFILE_IMAGE)-UBI
300304
ifeq (,$(SRC_REG))
301305
bin/.container-$(DOTFILE_IMAGE)-%: bin/$(OS)_$(ARCH)/$(BIN) $(DOCKERFILE_%)
302306
@echo "container: $(IMAGE):$(TAG_$*)"
303-
@sed \
307+
@sed \
304308
-e 's|{ARG_BIN}|$(BIN)|g' \
305309
-e 's|{ARG_ARCH}|$(ARCH)|g' \
306310
-e 's|{ARG_OS}|$(OS)|g' \
307311
-e 's|{ARG_FROM}|$(BASEIMAGE_$*)|g' \
312+
-e 's|{ARG_TAG}|$(TAG)|g' \
308313
$(DOCKERFILE_$*) > bin/.dockerfile-$*-$(OS)_$(ARCH)
309314
@docker buildx build --platform $(OS)/$(ARCH) --load --pull -t $(IMAGE):$(TAG_$*) -f bin/.dockerfile-$*-$(OS)_$(ARCH) .
310315
@docker images -q $(IMAGE):$(TAG_$*) > $@
@@ -316,14 +321,14 @@ bin/.container-$(DOTFILE_IMAGE)-%:
316321
@echo
317322
endif
318323

319-
push: bin/.push-$(DOTFILE_IMAGE)-PROD bin/.push-$(DOTFILE_IMAGE)-DBG
324+
push: bin/.push-$(DOTFILE_IMAGE)-PROD bin/.push-$(DOTFILE_IMAGE)-DBG bin/.push-$(DOTFILE_IMAGE)-UBI
320325
bin/.push-$(DOTFILE_IMAGE)-%: bin/.container-$(DOTFILE_IMAGE)-%
321326
@docker push $(IMAGE):$(TAG_$*)
322327
@echo "pushed: $(IMAGE):$(TAG_$*)"
323328
@echo
324329

325330
.PHONY: docker-manifest
326-
docker-manifest: docker-manifest-PROD docker-manifest-DBG
331+
docker-manifest: docker-manifest-PROD docker-manifest-DBG docker-manifest-UBI
327332
docker-manifest-%:
328333
@docker manifest create -a $(IMAGE):$(VERSION_$*) $(foreach PLATFORM,$(DOCKER_PLATFORMS),$(IMAGE):$(VERSION_$*)_$(subst /,_,$(PLATFORM)))
329334
@docker manifest push $(IMAGE):$(VERSION_$*)

0 commit comments

Comments
 (0)