mirror of
https://github.com/TECHNOFAB11/zfs-localpv.git
synced 2025-12-11 22:10:11 +01:00
feat(build): support for multi arch container image (#233)
* support for multi arch container image via github actions * suffix amd64 arch tag in zfs driver image Signed-off-by: prateekpandey14 <prateek.pandey@mayadata.io>
This commit is contained in:
parent
64bc7cb1c9
commit
e52d6c7067
9 changed files with 389 additions and 29 deletions
88
.github/workflows/build.yml
vendored
Normal file
88
.github/workflows/build.yml
vendored
Normal file
|
|
@ -0,0 +1,88 @@
|
||||||
|
# Copyright 2020 The OpenEBS Authors. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
name: build
|
||||||
|
|
||||||
|
on: ['push']
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Shellcheck
|
||||||
|
uses: reviewdog/action-shellcheck@v1
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.github_token }}
|
||||||
|
reporter: github-pr-review
|
||||||
|
path: '.'
|
||||||
|
pattern: '*.sh'
|
||||||
|
exclude: './.git/*,./vendor/*'
|
||||||
|
|
||||||
|
|
||||||
|
unit-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Unit test
|
||||||
|
run: make test
|
||||||
|
|
||||||
|
- name: Upload Coverage Report
|
||||||
|
uses: codecov/codecov-action@v1
|
||||||
|
|
||||||
|
csi-driver:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: ['lint', 'unit-test']
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set tag
|
||||||
|
run: |
|
||||||
|
BRANCH="${GITHUB_REF##*/}"
|
||||||
|
CI_TAG=${BRANCH#v}-ci
|
||||||
|
if [ ${BRANCH} = "master" ]; then
|
||||||
|
CI_TAG="ci"
|
||||||
|
fi
|
||||||
|
echo "::set-env name=TAG::${CI_TAG}"
|
||||||
|
echo "::set-env name=BRANCH::${BRANCH}"
|
||||||
|
echo "BRANCH: ${BRANCH}"
|
||||||
|
echo "TAG: ${CI_TAG}"
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
with:
|
||||||
|
platforms: all
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build & Push Image
|
||||||
|
env:
|
||||||
|
IMAGE_ORG: ${{ secrets.IMAGE_ORG}}
|
||||||
|
run: |
|
||||||
|
make docker.buildx.csi-driver
|
||||||
|
make buildx.push.csi-driver
|
||||||
75
.github/workflows/pull_request.yml
vendored
Normal file
75
.github/workflows/pull_request.yml
vendored
Normal file
|
|
@ -0,0 +1,75 @@
|
||||||
|
# Copyright 2020 The OpenEBS Authors. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
name: ci
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
# on pull requests to master and release branches
|
||||||
|
- master
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Shellcheck
|
||||||
|
uses: reviewdog/action-shellcheck@v1
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.github_token }}
|
||||||
|
reporter: github-pr-review
|
||||||
|
path: '.'
|
||||||
|
pattern: '*.sh'
|
||||||
|
exclude: './vendor/*'
|
||||||
|
|
||||||
|
|
||||||
|
unit-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Unit test
|
||||||
|
run: make test
|
||||||
|
|
||||||
|
- name: Upload Coverage Report
|
||||||
|
uses: codecov/codecov-action@v1
|
||||||
|
|
||||||
|
|
||||||
|
csi-driver:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: ['lint', 'unit-test']
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
with:
|
||||||
|
platforms: all
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
|
||||||
|
- name: Build Image
|
||||||
|
env:
|
||||||
|
IMG_RESULT: cache
|
||||||
|
run: make docker.buildx.csi-driver
|
||||||
57
.github/workflows/release.yml
vendored
Normal file
57
.github/workflows/release.yml
vendored
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
# Copyright 2020 The OpenEBS Authors. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
name: release
|
||||||
|
|
||||||
|
on:
|
||||||
|
create:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
csi-driver:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
|
- name: Set Tag
|
||||||
|
run: |
|
||||||
|
TAG="${GITHUB_REF#refs/*/v}"
|
||||||
|
echo "::set-env name=TAG::${TAG}"
|
||||||
|
echo "::set-env name=RELEASE_TAG::${TAG}"
|
||||||
|
echo "RELEASE_TAG ${TAG}"
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
with:
|
||||||
|
platforms: all
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build & Push Image
|
||||||
|
env:
|
||||||
|
IMAGE_ORG: ${{ secrets.IMAGE_ORG}}
|
||||||
|
run: |
|
||||||
|
make docker.buildx.csi-driver
|
||||||
|
make buildx.push.csi-driver
|
||||||
4
Makefile
4
Makefile
|
|
@ -87,7 +87,7 @@ export XC_ARCH
|
||||||
ARCH:=${XC_OS}_${XC_ARCH}
|
ARCH:=${XC_OS}_${XC_ARCH}
|
||||||
export ARCH
|
export ARCH
|
||||||
|
|
||||||
export DBUILD_ARGS=--build-arg DBUILD_DATE=${DBUILD_DATE} --build-arg DBUILD_REPO_URL=${DBUILD_REPO_URL} --build-arg DBUILD_SITE_URL=${DBUILD_SITE_URL} --build-arg ARCH=${ARCH}
|
export DBUILD_ARGS=--build-arg DBUILD_DATE=${DBUILD_DATE} --build-arg DBUILD_REPO_URL=${DBUILD_REPO_URL} --build-arg DBUILD_SITE_URL=${DBUILD_SITE_URL}
|
||||||
|
|
||||||
# Specify the name for the binary
|
# Specify the name for the binary
|
||||||
CSI_DRIVER=zfs-driver
|
CSI_DRIVER=zfs-driver
|
||||||
|
|
@ -259,3 +259,5 @@ license-check:
|
||||||
fi
|
fi
|
||||||
@echo "--> Done checking license."
|
@echo "--> Done checking license."
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
|
include Makefile.buildx.mk
|
||||||
|
|
|
||||||
74
Makefile.buildx.mk
Normal file
74
Makefile.buildx.mk
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
|
||||||
|
# Copyright 2018-2020 The OpenEBS Authors. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
# Build zfs-driver docker images with buildx
|
||||||
|
# Experimental docker feature to build cross platform multi-architecture docker images
|
||||||
|
# https://docs.docker.com/buildx/working-with-buildx/
|
||||||
|
|
||||||
|
ifeq (${TAG}, )
|
||||||
|
export TAG=ci
|
||||||
|
endif
|
||||||
|
|
||||||
|
# default list of platforms for which multiarch image is built
|
||||||
|
ifeq (${PLATFORMS}, )
|
||||||
|
export PLATFORMS="linux/amd64,linux/arm64"
|
||||||
|
endif
|
||||||
|
|
||||||
|
# if IMG_RESULT is unspecified, by default the image will be pushed to registry
|
||||||
|
ifeq (${IMG_RESULT}, load)
|
||||||
|
export PUSH_ARG="--load"
|
||||||
|
# if load is specified, image will be built only for the build machine architecture.
|
||||||
|
export PLATFORMS="local"
|
||||||
|
else ifeq (${IMG_RESULT}, cache)
|
||||||
|
# if cache is specified, image will only be available in the build cache, it won't be pushed or loaded
|
||||||
|
# therefore no PUSH_ARG will be specified
|
||||||
|
else
|
||||||
|
export PUSH_ARG="--push"
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Name of the multiarch image for csi-driver
|
||||||
|
DOCKERX_IMAGE_CSI_DRIVER:=${IMAGE_ORG}/zfs-driver:${TAG}
|
||||||
|
|
||||||
|
.PHONY: docker.buildx
|
||||||
|
docker.buildx:
|
||||||
|
export DOCKER_CLI_EXPERIMENTAL=enabled
|
||||||
|
@if ! docker buildx ls | grep -q container-builder; then\
|
||||||
|
docker buildx create --platform ${PLATFORMS} --name container-builder --use;\
|
||||||
|
fi
|
||||||
|
@docker buildx build --platform "${PLATFORMS}" \
|
||||||
|
-t "$(DOCKERX_IMAGE_NAME)" ${BUILD_ARGS} \
|
||||||
|
-f $(PWD)/buildscripts/$(COMPONENT)/$(COMPONENT).Dockerfile \
|
||||||
|
. ${PUSH_ARG}
|
||||||
|
@echo "--> Build docker image: $(DOCKERX_IMAGE_NAME)"
|
||||||
|
@echo
|
||||||
|
|
||||||
|
.PHONY: buildx.csi-driver
|
||||||
|
buildx.csi-driver:
|
||||||
|
@echo '--> Building csi-driver binary...'
|
||||||
|
@pwd
|
||||||
|
@PNAME=${CSI_DRIVER} CTLNAME=${CSI_DRIVER} BUILDX=true sh -c "'$(PWD)/buildscripts/build.sh'"
|
||||||
|
@echo '--> Built binary.'
|
||||||
|
@echo
|
||||||
|
|
||||||
|
.PHONY: docker.buildx.csi-driver
|
||||||
|
docker.buildx.csi-driver: DOCKERX_IMAGE_NAME=$(DOCKERX_IMAGE_CSI_DRIVER)
|
||||||
|
docker.buildx.csi-driver: COMPONENT=$(CSI_DRIVER)
|
||||||
|
docker.buildx.csi-driver: BUILD_ARGS=$(DBUILD_ARGS)
|
||||||
|
docker.buildx.csi-driver: docker.buildx
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: buildx.push.csi-driver
|
||||||
|
buildx.push.csi-driver:
|
||||||
|
BUILDX=true DIMAGE=${IMAGE_ORG}/zfs-driver ./buildscripts/push
|
||||||
|
|
@ -33,21 +33,21 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set BUILDMETA based on travis tag
|
# Set BUILDMETA based on travis tag
|
||||||
if [[ -n "$TRAVIS_TAG" ]] && [[ $TRAVIS_TAG != *"RC"* ]]; then
|
if [[ -n "$RELEASE_TAG" ]] && [[ $RELEASE_TAG != *"RC"* ]]; then
|
||||||
echo "released" > BUILDMETA
|
echo "released" > BUILDMETA
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CURRENT_BRANCH=""
|
CURRENT_BRANCH=""
|
||||||
if [ -z ${TRAVIS_BRANCH} ];
|
if [ -z ${BRANCH} ];
|
||||||
then
|
then
|
||||||
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
|
CURRENT_BRANCH=$(git branch | grep \* | cut -d ' ' -f2)
|
||||||
else
|
else
|
||||||
CURRENT_BRANCH=${TRAVIS_BRANCH}
|
CURRENT_BRANCH=${BRANCH}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the version details
|
# Get the version details
|
||||||
if [ -n "$TRAVIS_TAG" ]; then
|
if [ -n "$RELEASE_TAG" ]; then
|
||||||
VERSION="$TRAVIS_TAG"
|
VERSION="$RELEASE_TAG"
|
||||||
else
|
else
|
||||||
BUILDDATE=`date +%m-%d-%Y`
|
BUILDDATE=`date +%m-%d-%Y`
|
||||||
SHORT_COMMIT="$(git rev-parse --short HEAD)"
|
SHORT_COMMIT="$(git rev-parse --short HEAD)"
|
||||||
|
|
@ -72,15 +72,6 @@ elif [ "$UNAME" = "Linux" ] ; then
|
||||||
XC_OS="linux"
|
XC_OS="linux"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ARCH}" = "i686" ] ; then
|
|
||||||
XC_ARCH='386'
|
|
||||||
elif [ "${ARCH}" = "x86_64" ] ; then
|
|
||||||
XC_ARCH='amd64'
|
|
||||||
else
|
|
||||||
echo "Unusable architecture: ${ARCH}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [ -z "${PNAME}" ];
|
if [ -z "${PNAME}" ];
|
||||||
then
|
then
|
||||||
|
|
@ -146,19 +137,6 @@ for F in $(find ${DEV_PLATFORM} -mindepth 1 -maxdepth 1 -type f); do
|
||||||
cp ${F} ${MAIN_GOPATH}/bin/
|
cp ${F} ${MAIN_GOPATH}/bin/
|
||||||
done
|
done
|
||||||
|
|
||||||
if [[ "x${DEV}" == "x" ]]; then
|
|
||||||
# Zip and copy to the dist dir
|
|
||||||
echo "==> Packaging..."
|
|
||||||
for PLATFORM in $(find ./bin/${PNAME} -mindepth 1 -maxdepth 1 -type d); do
|
|
||||||
OSARCH=$(basename ${PLATFORM})
|
|
||||||
echo "--> ${OSARCH}"
|
|
||||||
|
|
||||||
pushd "$PLATFORM" >/dev/null 2>&1
|
|
||||||
zip ../${PNAME}-${OSARCH}.zip ./*
|
|
||||||
popd >/dev/null 2>&1
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Done!
|
# Done!
|
||||||
echo
|
echo
|
||||||
echo "==> Results:"
|
echo "==> Results:"
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,33 @@ then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
function pushBuildx() {
|
||||||
|
BUILD_TAG="latest"
|
||||||
|
TARGET_IMG=${DIMAGE}
|
||||||
|
|
||||||
|
# TODO Currently ci builds with commit tag will not be generated,
|
||||||
|
# since buildx does not support multiple repo
|
||||||
|
# if not a release build set the tag and ci image
|
||||||
|
if [ -z "${RELEASE_TAG}" ]; then
|
||||||
|
return
|
||||||
|
# BUILD_ID=$(git describe --tags --always)
|
||||||
|
# BUILD_TAG="${BRANCH}-${BUILD_ID}"
|
||||||
|
# TARGET_IMG="${DIMAGE}-ci"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Tagging and pushing ${DIMAGE}:${TAG} as ${TARGET_IMG}:${BUILD_TAG}"
|
||||||
|
docker buildx imagetools create "${DIMAGE}:${TAG}" -t "${TARGET_IMG}:${BUILD_TAG}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# if the push is for a buildx build
|
||||||
|
if [[ ${BUILDX} ]]; then
|
||||||
|
pushBuildx
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
IMAGEID=$( sudo docker images -q ${DIMAGE}:ci )
|
IMAGEID=$( sudo docker images -q ${DIMAGE}:ci )
|
||||||
|
DIMAGE="${DIMAGE}-${XC_ARCH}"
|
||||||
|
|
||||||
echo "${DIMAGE}:ci -> $IMAGEID"
|
echo "${DIMAGE}:ci -> $IMAGEID"
|
||||||
if [ -z ${IMAGEID} ];
|
if [ -z ${IMAGEID} ];
|
||||||
then
|
then
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ RUN apt-get update; exit 0
|
||||||
RUN apt-get -y install rsyslog libssl-dev xfsprogs ca-certificates
|
RUN apt-get -y install rsyslog libssl-dev xfsprogs ca-certificates
|
||||||
RUN apt-get -y install btrfs-progs netcat
|
RUN apt-get -y install btrfs-progs netcat
|
||||||
|
|
||||||
ARG ARCH
|
|
||||||
ARG DBUILD_DATE
|
ARG DBUILD_DATE
|
||||||
ARG DBUILD_REPO_URL
|
ARG DBUILD_REPO_URL
|
||||||
ARG DBUILD_SITE_URL
|
ARG DBUILD_SITE_URL
|
||||||
|
|
|
||||||
61
buildscripts/zfs-driver/zfs-driver.Dockerfile
Normal file
61
buildscripts/zfs-driver/zfs-driver.Dockerfile
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
# Copyright 2019-2020 The OpenEBS Authors. All rights reserved.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
FROM golang:1.14.7 as build
|
||||||
|
|
||||||
|
ARG TARGETOS
|
||||||
|
ARG TARGETARCH
|
||||||
|
ARG TARGETVARIANT=""
|
||||||
|
|
||||||
|
ENV GO111MODULE=on \
|
||||||
|
GOOS=${TARGETOS} \
|
||||||
|
GOARCH=${TARGETARCH} \
|
||||||
|
GOARM=${TARGETVARIANT} \
|
||||||
|
DEBIAN_FRONTEND=noninteractive \
|
||||||
|
PATH="/root/go/bin:${PATH}"
|
||||||
|
|
||||||
|
WORKDIR /go/src/github.com/openebs/zfs-localpv/
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y make git
|
||||||
|
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
# Get dependancies - will also be cached if we won't change mod/sum
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make buildx.csi-driver
|
||||||
|
|
||||||
|
FROM ubuntu:19.10
|
||||||
|
|
||||||
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||||
|
RUN apt-get update; exit 0
|
||||||
|
RUN apt-get -y install rsyslog libssl-dev xfsprogs ca-certificates
|
||||||
|
RUN apt-get -y install btrfs-progs netcat
|
||||||
|
|
||||||
|
ARG DBUILD_DATE
|
||||||
|
ARG DBUILD_REPO_URL
|
||||||
|
ARG DBUILD_SITE_URL
|
||||||
|
|
||||||
|
COPY --from=build /go/src/github.com/openebs/zfs-localpv/bin/zfs-driver/zfs-driver /usr/local/bin/zfs-driver
|
||||||
|
|
||||||
|
LABEL org.label-schema.name="zfs-driver"
|
||||||
|
LABEL org.label-schema.description="OpenEBS ZFS LocalPV Driver"
|
||||||
|
LABEL org.label-schema.schema-version="1.0"
|
||||||
|
LABEL org.label-schema.build-date=$DBUILD_DATE
|
||||||
|
LABEL org.label-schema.vcs-url=$DBUILD_REPO_URL
|
||||||
|
LABEL org.label-schema.url=$DBUILD_SITE_URL
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/zfs-driver"]
|
||||||
|
EXPOSE 7676 7777
|
||||||
Loading…
Add table
Add a link
Reference in a new issue