1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
#!/bin/bash
# Copyright The containerd Authors.
# 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.
set -euo pipefail
CONTEXT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )/"
REPO="${CONTEXT}../../"
IMAGE_NAME="minienv"
source "${REPO}/script/util/utils.sh"
GOBASE_VERSION=$(go_base_version "${REPO}/Dockerfile")
TMP_CONTEXT=$(mktemp -d)
function cleanup {
local ORG_EXIT_CODE="${1}"
rm -rf "${TMP_CONTEXT}" || true
exit "${ORG_EXIT_CODE}"
}
trap 'cleanup "$?"' EXIT SIGHUP SIGINT SIGQUIT SIGTERM
cat <<EOF > "${TMP_CONTEXT}/Dockerfile"
FROM golang:${GOBASE_VERSION}
RUN apt-get update -y && apt-get --no-install-recommends install -y fuse3
EOF
MAKECMD="make ${@} PREFIX=/tmp/out/"
docker build -t "${IMAGE_NAME}" ${DOCKER_BUILD_ARGS:-} "${TMP_CONTEXT}"
docker run --rm --privileged \
--device /dev/fuse \
--tmpfs /tmp:exec,mode=777 \
-w /go/src/github.com/containerd/stargz-snapshotter \
-v "${REPO}:/go/src/github.com/containerd/stargz-snapshotter:ro" \
"${IMAGE_NAME}" /bin/sh -c "git config --global --add safe.directory '/go/src/github.com/containerd/stargz-snapshotter' && ${MAKECMD}"
|