Skip to content
Open
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
17 changes: 13 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
FROM golang:1.23 AS build-env
ADD . /src
FROM --platform=$BUILDPLATFORM golang:1.23 AS build-env

ARG TARGETPLATFORM
ARG BUILDPLATFORM
ARG TARGETARCH
ARG TARGETOS

RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log

ENV CGO_ENABLED=0
ENV GOOS=linux
ENV GOARCH=amd64
ENV GOOS=${TARGETOS}
ENV GOARCH=${TARGETARCH}

ADD . /src
WORKDIR /src
RUN go mod download
RUN make init
Expand Down
5 changes: 3 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ SHELL = /bin/bash
GIT_BRANCH:=$(shell git rev-parse --abbrev-ref HEAD | sed -e 's^/^-^g; s^[.]^-^g;' | tr '[:upper:]' '[:lower:]')
GIT_COMMIT:=$(shell git rev-parse --short HEAD)
IMG ?= perconalab/version-service:$(GIT_BRANCH)-$(GIT_COMMIT)
DOCKER_DEFAULT_PLATFORM ?= linux/amd64,linux/arm64

init:
go build -modfile=tools/go.mod -o bin/yq github.com/mikefarah/yq/v3
Expand All @@ -14,7 +15,7 @@ init:
curl -L "https://github.com/bufbuild/buf/releases/download/v1.34.0/buf-$(shell uname -s)-$(shell uname -m)" -o "./bin/buf"
chmod +x ./bin/buf

curl -L https://github.com/go-swagger/go-swagger/releases/download/v0.31.0/swagger_$(shell uname | tr '[:upper:]' '[:lower:]')_amd64 -o ./bin/swagger
curl -L "https://github.com/go-swagger/go-swagger/releases/download/v0.31.0/swagger_$(shell uname -s)_$(shell uname -m | sed 's/aarch64/arm64/')" -o ./bin/swagger
chmod +x ./bin/swagger

gen:
Expand All @@ -35,7 +36,7 @@ cert:

# Build docker image
docker-build:
docker build --platform=linux/amd64 . -t ${IMG}
DOCKER_DEFAULT_PLATFORM="$(DOCKER_DEFAULT_PLATFORM)" IMG="$(IMG)" ./tools/build.sh

# Run docker image
docker-run-it:
Expand Down
33 changes: 33 additions & 0 deletions tools/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/env bash

if [[ -z $DOCKER_DEFAULT_PLATFORM ]]; then
echo "DOCKER_DEFAULT_PLATFORM is not specified. Use 'make docker-build'"
exit 1
fi

if [[ -z $IMG ]]; then
echo "IMG is not specified. Use 'make docker-build'"
exit 1
fi

if [[ ${DOCKER_PUSH:-1} == 1 ]]; then
imgresult="--push=true"
else
imgresult="--load"
fi

if echo "$DOCKER_DEFAULT_PLATFORM" | grep -q ','; then
if [ "${DOCKER_PUSH:-1}" = 0 ]; then
echo "DOCKER_PUSH=0 option is not supported in case of multi-arch builds, please use DOCKER_PUSH=1"
exit 1
fi
fi

docker buildx build \
--platform "$DOCKER_DEFAULT_PLATFORM" \
--progress plain \
--no-cache \
$imgresult \
-t "$IMG" \
-f ./Dockerfile \
.