mirror of
https://github.com/actions/runner-images.git
synced 2025-12-12 03:57:32 +00:00
56 lines
2.0 KiB
Bash
56 lines
2.0 KiB
Bash
#!/bin/bash -e
|
|
################################################################################
|
|
## File: docker-moby.sh
|
|
## Desc: Installs docker onto the image
|
|
################################################################################
|
|
|
|
# Source the helpers for use with the script
|
|
source $HELPER_SCRIPTS/install.sh
|
|
|
|
# Check to see if docker is already installed
|
|
docker_package=moby
|
|
echo "Determing if Docker ($docker_package) is installed"
|
|
if ! IsPackageInstalled $docker_package; then
|
|
echo "Docker ($docker_package) was not found. Installing..."
|
|
apt-get remove -y moby-engine moby-cli
|
|
apt-get update
|
|
apt-get install -y moby-engine moby-cli
|
|
apt-get install --no-install-recommends -y moby-buildx
|
|
apt-get install -y moby-compose
|
|
else
|
|
echo "Docker ($docker_package) is already installed"
|
|
fi
|
|
|
|
# Enable docker.service
|
|
systemctl is-active --quiet docker.service || systemctl start docker.service
|
|
systemctl is-enabled --quiet docker.service || systemctl enable docker.service
|
|
|
|
# Docker daemon takes time to come up after installing
|
|
sleep 10
|
|
docker info
|
|
|
|
# If credentials are provided, attempt to log into Docker Hub
|
|
# with a paid account to avoid Docker Hub's rate limit.
|
|
if [ "${DOCKERHUB_LOGIN}" ] && [ "${DOCKERHUB_PASSWORD}" ]; then
|
|
docker login --username "${DOCKERHUB_LOGIN}" --password "${DOCKERHUB_PASSWORD}"
|
|
fi
|
|
|
|
# Pull images
|
|
images=$(get_toolset_value '.docker.images[]')
|
|
for image in $images; do
|
|
docker pull "$image"
|
|
done
|
|
|
|
# Always attempt to logout so we do not leave our credentials on the built
|
|
# image. Logout _should_ return a zero exit code even if no credentials were
|
|
# stored from earlier.
|
|
docker logout
|
|
|
|
# Install amazon-ecr-credential-helper
|
|
aws_latest_release_url="https://api.github.com/repos/awslabs/amazon-ecr-credential-helper/releases/latest"
|
|
aws_helper_url=$(curl "${authString[@]}" -sL $aws_latest_release_url | jq -r '.body' | awk -F'[()]' '/linux-amd64/ {print $2}')
|
|
download_with_retries "$aws_helper_url" "/usr/bin" docker-credential-ecr-login
|
|
chmod +x /usr/bin/docker-credential-ecr-login
|
|
|
|
invoke_tests "Tools" "Docker"
|