diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..23f1ca4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +# .dockerignore + +* +!fencing/ +!package.sh +!nfpm.yaml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f9aa10c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,27 @@ +ARG GOLANG_IMAGE_NAME="golang" +ARG GOLANG_IMAGE_VERSION="latest" + +FROM ${GOLANG_IMAGE_NAME}:${GOLANG_IMAGE_VERSION} + +# Set build arguments with default values +ARG VERSION="none" +ARG BUILD="none" +ARG TIME="none" +ARG GOPROXY=http://yum-repo.vpn.versity.com:4000 + +# Set environment variables +ENV VERSION=${VERSION} +ENV BUILD=${BUILD} +ENV TIME=${TIME} +ENV GOPROXY=${GOPROXY} + +ENV CGO_ENABLED=0 +RUN go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest + +COPY fencing/fence-remote-host /scoutfs-fencing/ +COPY fencing/README.md /scoutfs-fencing/ + +COPY package.sh / +COPY nfpm.yaml /scoutfs-fencing/ + +ENTRYPOINT [ "/package.sh" ] diff --git a/build_package.sh b/build_package.sh new file mode 100755 index 0000000..6bd5145 --- /dev/null +++ b/build_package.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +set -ex + +PULL="${PULL:-true}" +GOLANG_IMAGE_NAME="${GOLANG_IMAGE_NAME:-golang}" +GOLANG_IMAGE_VERSION="${GOLANG_IMAGE_VERSION:-latest}" + +export VERSION +VERSION="$(git describe --tags)" + +docker build --pull="${PULL}" \ + --build-arg "GOLANG_IMAGE_NAME=${GOLANG_IMAGE_NAME}" \ + --build-arg "GOLANG_IMAGE_VERSION=${GOLANG_IMAGE_VERSION}" \ + -t "versity-scripts:${VERSION}" . + +docker run --rm -e "HOST_UID=${UID}" -e "VERSION=${VERSION}" -v "${PWD}/package:/package" "versity-scripts:${VERSION}" diff --git a/fencing/fence-remote-host b/fencing/fence-remote-host old mode 100644 new mode 100755 diff --git a/nfpm.yaml b/nfpm.yaml new file mode 100644 index 0000000..31dfd03 --- /dev/null +++ b/nfpm.yaml @@ -0,0 +1,23 @@ +name: "scoutfs-scripts" +arch: "amd64" +platform: "linux" +version: "${VERSION}" +section: "default" +priority: "extra" +provides: +- scoutfs-scripts +maintainer: "Versity " +description: | + This includes various support scripts and extra documentation for advanced ScoutFS usage. +vendor: "Versity, Inc." +homepage: "http://versity.com" +license: "" +umask: 0o002 +#changelog: "changelog.yaml" +contents: +- src: /scoutfs-fencing/fence-remote-host + dst: /usr/libexec/scoutfs-fenced/run/fence-remote-host +- src: /scoutfs-fencing/ipmi-remote-host + dst: /usr/libexec/scoutfs-fenced/run/ipmi-remote-host +- src: /scoutfs-fencing/README.md + dst: /usr/libexec/scoutfs-fenced/run/README.md diff --git a/package.sh b/package.sh new file mode 100755 index 0000000..efc7bb8 --- /dev/null +++ b/package.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +export PATH="/go/bin:${PATH}" +HOST_UID="${HOST_UID:-$UID}" + +nfpm pkg --packager rpm --config /scoutfs-fencing/nfpm.yaml --target /package +chown -R "${HOST_UID}" /package diff --git a/package/.keep b/package/.keep new file mode 100644 index 0000000..e69de29