Skip to content

Commit b924af5

Browse files
committed
buildx with cache for controller & operator
1 parent 31272b0 commit b924af5

File tree

2 files changed

+32
-30
lines changed

2 files changed

+32
-30
lines changed

.circleci/config.yml

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -96,57 +96,62 @@ jobs:
9696
working_directory: ./controller
9797
command: bash <(curl -s https://codecov.io/bash)
9898
build-push-controller-image:
99-
docker:
100-
- image: circleci/golang:1.13.11
99+
machine:
100+
image: ubuntu-2004:202008-01
101101
steps:
102102
- checkout
103-
- setup_remote_docker
104103
- run:
105-
name: Build Docker image
104+
name: Build & Push Controller image
106105
working_directory: ./controller
107-
command: docker build -t kalmhq/kalm-controller:latest .
108-
- run:
109-
name: Publish Docker Image to DOCKER HUB
110106
command: |
107+
# enable buildx
108+
export DOCKER_CLI_EXPERIMENTAL=enabled
109+
# use driver: docker-container
110+
docker buildx create --name mybuilder --use
111111
echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
112+
docker buildx build \
113+
--output=type=docker \
114+
--cache-from=type=registry,ref=kalmhq/kalm-controller:$CIRCLE_BRANCH-cache \
115+
--cache-to=type=registry,ref=kalmhq/kalm-controller:$CIRCLE_BRANCH-cache,mode=max \
116+
-t kalmhq/kalm-controller:latest .
117+
docker tag kalmhq/kalm-controller:latest kalmhq/kalm-controller:$CIRCLE_SHA1
112118
docker push kalmhq/kalm-controller:latest
113-
docker tag kalmhq/kalm-controller:latest kalmhq/kalm-controller:$CIRCLE_SHA1
114119
docker push kalmhq/kalm-controller:$CIRCLE_SHA1
115-
TAG=$(git tag --points-at HEAD)
116-
117-
if [ "$TAG" != "" ]
120+
if [ "$CIRCLE_TAG" != "" ]
118121
then
119-
docker tag kalmhq/kalm-controller:latest kalmhq/kalm-controller:$TAG
120-
docker push kalmhq/kalm-controller:$TAG
122+
docker tag kalmhq/kalm-controller:latest kalmhq/kalm-controller:$CIRCLE_TAG
123+
docker push kalmhq/kalm-controller:$CIRCLE_TAG
121124
fi
122125
build-push-operator-image:
123-
docker:
124-
- image: circleci/golang:1.13.11
126+
machine:
127+
image: ubuntu-2004:202008-01
125128
steps:
126129
- checkout
127-
- setup_remote_docker
128130
- run:
129131
name: cp controller
130132
working_directory: ./operator
131133
command: cp -r ../controller .
132134
- run:
133-
name: Build Docker image
134-
working_directory: ./operator
135-
command: docker build -t kalmhq/kalm-operator:latest .
136-
- run:
137-
name: Publish Docker Image to Docker Hub
135+
name: Build & Publish Operator Image
138136
working_directory: ./operator
139137
command: |
138+
# enable buildx
139+
export DOCKER_CLI_EXPERIMENTAL=enabled
140+
# use driver: docker-container
141+
docker buildx create --name mybuilder --use
140142
echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
143+
docker buildx build \
144+
--output=type=docker \
145+
--cache-from=type=registry,ref=kalmhq/kalm-operator:$CIRCLE_BRANCH-cache \
146+
--cache-to=type=registry,ref=kalmhq/kalm-operator:$CIRCLE_BRANCH-cache,mode=max \
147+
-t kalmhq/kalm-operator:latest .
148+
docker tag kalmhq/kalm-operator:latest kalmhq/kalm-operator:$CIRCLE_SHA1
141149
docker push kalmhq/kalm-operator:latest
142-
docker tag kalmhq/kalm-operator:latest kalmhq/kalm-operator:$CIRCLE_SHA1
143150
docker push kalmhq/kalm-operator:$CIRCLE_SHA1
144-
145-
TAG=$(git tag --points-at HEAD)
146-
if [ "$TAG" != "" ]
151+
if [ "$CIRCLE_TAG" != "" ]
147152
then
148-
docker tag kalmhq/kalm-operator:latest kalmhq/kalm-operator:$TAG
149-
docker push kalmhq/kalm-operator:$TAG
153+
docker tag kalmhq/kalm-operator:latest kalmhq/kalm-operator:$CIRCLE_TAG
154+
docker push kalmhq/kalm-operator:$CIRCLE_TAG
150155
fi
151156
#deploy-dashboard:
152157
# executor: deploy-orb/default

Dockerfile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ COPY api/ .
3737
ARG KALM_BUILD_ENV_GIT_VERSION
3838
ARG KALM_BUILD_ENV_GIT_COMMIT
3939

40-
ENV KALM_BUILD_ENV_GIT_VERSION=$KALM_BUILD_ENV_GIT_VERSION
41-
ENV KALM_BUILD_ENV_GIT_COMMIT=$KALM_BUILD_ENV_GIT_COMMIT
42-
4340
# Build
4441
RUN CGO_ENABLED=1 go build -installsuffix 'static' \
4542
-ldflags "-X github.com/kalmhq/kalm/api/config.GIT_VERSION=$KALM_BUILD_ENV_GIT_VERSION -X github.com/kalmhq/kalm/api/config.GIT_COMMIT=$KALM_BUILD_ENV_GIT_COMMIT -X 'github.com/kalmhq/kalm/api/config.BUILD_TIME=$(date -Iseconds)' -X 'github.com/kalmhq/kalm/api/config.PLATFORM=$(go version | cut -d ' ' -f 4)' -X 'github.com/kalmhq/kalm/api/config.GO_VERSION=$(go version | cut -d ' ' -f 3)' -extldflags '-static'" \

0 commit comments

Comments
 (0)