129 lines
4.0 KiB
Bash
129 lines
4.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
ARCH=$(dpkg --print-architecture)
|
|
if [[ ${ARCH} == "armhf" ]]; then ARCH="arm-v7"; fi
|
|
USER="docker"
|
|
PROJECT="buildx"
|
|
LICENSE="apache2"
|
|
SECTION="admin"
|
|
HOMEPAGE="https://docs.docker.com/buildx/working-with-buildx/"
|
|
BUILD_HOME="/var/tmp/buildx_build"
|
|
#VERSION="2.1.0"
|
|
PACKAGE="docker-buildx"
|
|
VERSION=$(curl "https://api.github.com/repos/${USER}/${PROJECT}/tags?per_page=5" | jq '[ .[] | select(.name|test("v[[:digit:].]+$"))]|.[0] | .name')
|
|
DEB_VERSION=$(echo ${VERSION} | tr -d "\"" | tr -d "v") # strip the preceding 'v'
|
|
#VERSION="1.0.0"
|
|
DEBEMAIL="person@company.tld"
|
|
DEBFULLNAME="Testy McTester"
|
|
DESCRIPTION="."
|
|
LONG_DESCRIPTION=" ."
|
|
|
|
REQUIRES="docker-ce"
|
|
BUILD_DIR="/var/tmp/buildx_build"
|
|
WORKDIR="/var/tmp/buildx_build"
|
|
|
|
## Checkinstall variables - see defaults in /etc/checkinstallrc
|
|
DOC_DIR=/usr/share/doc
|
|
|
|
# make a new temporary directory for this use to avoid permission issues.
|
|
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
|
#-------------------------------------------------------------------------------
|
|
mkdir -p ${BUILD_DIR}
|
|
|
|
## Create and populate the install scripts and documentation for checkinstall
|
|
cat > ${BUILD_DIR}/description-pak << EOF
|
|
Docker Buildx is a CLI plugin that extends the docker command with the full support of the features provided by Moby BuildKit builder toolkit. It provides the same user experience as docker build with many new features like creating scoped builder instances and building against multiple nodes concurrently.
|
|
EOF
|
|
|
|
# | preinstall-pak | Run BEFORE the package is INSTALLED |
|
|
cat > ${BUILD_DIR}/preinstall-pak << EOF
|
|
#!/usr/bin/env bash
|
|
EOF
|
|
|
|
# | postinstall-pak | Run AFTER the package is INSTALLED |
|
|
cat > ${BUILD_DIR}/postinstall-pak << EOF
|
|
#!/usr/bin/env bash
|
|
EOF
|
|
|
|
# | preremove-pak | Run BEFORE the package is REMOVED |
|
|
cat > ${BUILD_DIR}/preremove-pak << EOF
|
|
#!/usr/bin/env bash
|
|
EOF
|
|
|
|
# | postremove-pak | Run AFTER the package is REMOVED
|
|
cat > ${BUILD_DIR}/postremove-pak << EOF
|
|
#!/usr/bin/env bash
|
|
EOF
|
|
|
|
## Make the doc-pak directory for README, INSTALL, COPYING, Changelog, TODO, CREDITS
|
|
mkdir -p ${BUILD_DIR}/doc-pak
|
|
#cp README INSTALL COPYING Changelog TODO CREDITS doc-pak
|
|
|
|
|
|
cat > ${BUILD_DIR}/doc-pak/README << 'EOF'
|
|
Docker CLI plugin for extended build capabilities with BuildKit
|
|
|
|
buildx is Tech Preview
|
|
TL;DR
|
|
|
|
Familiar UI from docker build
|
|
Full BuildKit capabilities with container driver
|
|
Multiple builder instance support
|
|
Multi-node builds for cross-platform images
|
|
Compose build support
|
|
WIP: High-level build constructs (bake)
|
|
In-container driver support (both Docker and Kubernetes)
|
|
|
|
see: http://github.com/docker/buildx
|
|
EOF
|
|
|
|
cat > ${BUILD_DIR}/checkinstall_it.sh << FOE
|
|
|
|
## Checkinstall variables - see defaults in /etc/checkinstallrc
|
|
DOC_DIR=/usr/share/doc
|
|
|
|
# make a new temporary directory for this use to avoid permission issues.
|
|
BASE_TMP_DIR=~/tmptmp/checkinstall_tmp
|
|
mkdir -p '${BASE_TMP_DIR}'
|
|
|
|
|
|
# do your work
|
|
checkinstall -y --fstrans \
|
|
--pkgname=${PACKAGE} \
|
|
--pkgversion=${DEB_VERSION}\
|
|
--pkgrelease=${RELEASE} \
|
|
--pkgarch=${ARCH} \
|
|
--pkggroup=admin \
|
|
--pkglicense=LICENSE \
|
|
--pkgsource=${LATEST_URL} \
|
|
--maintainer=cyteen@ring-zero.co.uk \
|
|
--requires=${REQUIRES} \
|
|
--recommends=${RECOMENDS} \
|
|
--suggests=${SUGGESTS} \
|
|
-D \
|
|
bash ${BUILD_DIR}/install.sh
|
|
FOE
|
|
|
|
echo "Writing install.sh to: ${BUILD_DIR}/install.sh"
|
|
cat > ${BUILD_DIR}/install.sh << FOE
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
#set -x
|
|
|
|
# buildx-${VERSION}.darwin-amd64
|
|
# buildx-${VERSION}.linux-amd64
|
|
# buildx-${VERSION}.linux-arm-v6
|
|
# buildx-${VERSION}.linux-arm-v7
|
|
# buildx-${VERSION}.linux-arm64
|
|
# buildx-${VERSION}.linux-ppc64le
|
|
# buildx-${VERSION}.linux-s390x
|
|
|
|
DEST_DIR=/root/.docker/cli-plugins
|
|
#mkdir -p ${DEST_DIR}
|
|
mkdir -p /root/.docker/cli-plugins
|
|
#wget -O ${DEST_DIR}/docker-buildx http://github.com/docker/${PROJECT}/releases/download/${VERSION}/buildx-${VERSION}.linux-${ARCH}
|
|
wget -O /root/.docker/cli-plugins/docker-buildx http://github.com/docker/${PROJECT}/releases/download/${VERSION}/buildx-${VERSION}.linux-${ARCH}
|
|
FOE
|
|
|
|
bash ${BUILD_DIR}/checkinstall_it.sh
|