mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-21 20:08:54 +00:00
In order to ensure that the proxy configuration is passed to the 2nd
layer container, let's ensure the $HOME/.docker/config.json file is
exposed inside the 1st layer container.
For some reason which I still don't fully understand exporting
https_proxy / http_proxy / no_proxy was not enough to get those
variables exported to the 2nd layer container.
In this commit we're creating a "$HOME/.docker" directory, and removing
it after the build, in case it doesn't exist yet. The reason we do this
is to avoid docker not running in case "$HOME/.docker" doesn't exist.
This was not tested with podman, but if there's an issue with podman,
the issue was already there beforehand and should be treated as a
different problem than the one addressed in this commit.
Fixes: #5077
Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
(cherry picked from commit 4da743f90b
)
66 lines
1.8 KiB
Bash
Executable File
66 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018-2021 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
set -o errtrace
|
|
|
|
script_dir=$(dirname "$(readlink -f "$0")")
|
|
kata_dir=$(realpath "${script_dir}/../../../../")
|
|
kata_deploy_create="${script_dir}/kata-deploy-binaries.sh"
|
|
uid=$(id -u ${USER})
|
|
gid=$(id -g ${USER})
|
|
|
|
if [ "${script_dir}" != "${PWD}" ]; then
|
|
ln -sf "${script_dir}/build" "${PWD}/build"
|
|
fi
|
|
|
|
# This is the gid of the "docker" group on host. In case of docker in docker builds
|
|
# for some of the targets (clh builds from source), the nested container user needs to
|
|
# be part of this group.
|
|
docker_gid=$(getent group docker | cut -d: -f3 || { echo >&2 "Missing docker group, docker needs to be installed" && false; })
|
|
|
|
# If docker gid is the effective group id of the user, do not pass it as
|
|
# an additional group.
|
|
if [ ${docker_gid} == ${gid} ]; then
|
|
docker_gid=""
|
|
fi
|
|
|
|
remove_dot_docker_dir=false
|
|
if [ ! -d "$HOME/.docker" ]; then
|
|
mkdir $HOME/.docker
|
|
remove_dot_docker_dir=true
|
|
fi
|
|
|
|
docker build -q -t build-kata-deploy \
|
|
--build-arg IMG_USER="${USER}" \
|
|
--build-arg UID=${uid} \
|
|
--build-arg GID=${gid} \
|
|
--build-arg HOST_DOCKER_GID=${docker_gid} \
|
|
"${script_dir}/dockerbuild/"
|
|
|
|
docker run \
|
|
-v $HOME/.docker:/root/.docker \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
--user ${uid}:${gid} \
|
|
--env CI="${CI:-}" \
|
|
--env USER=${USER} \
|
|
--env SKOPEO="${SKOPEO:-}" \
|
|
--env UMOCI="${UMOCI:-}" \
|
|
--env AA_KBC="${AA_KBC:-}" \
|
|
--env KATA_BUILD_CC="${KATA_BUILD_CC:-}" \
|
|
--env INCLUDE_ROOTFS="$(realpath "${INCLUDE_ROOTFS:-}" 2> /dev/null || true)" \
|
|
-v "${kata_dir}:${kata_dir}" \
|
|
--rm \
|
|
-w ${script_dir} \
|
|
build-kata-deploy "${kata_deploy_create}" $@
|
|
|
|
if [ $remove_dot_docker_dir == true ]; then
|
|
rm -rf "$HOME/.docker"
|
|
fi
|