2019-12-13 09:48:00 -05:00
|
|
|
#!/bin/bash
|
|
|
|
|
################################################################################
|
2020-02-27 16:55:23 +04:00
|
|
|
## File: docker-moby.sh
|
|
|
|
|
## Desc: Installs docker onto the image
|
2019-12-13 09:48:00 -05:00
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
source $HELPER_SCRIPTS/document.sh
|
2020-07-08 22:28:23 +03:00
|
|
|
source $HELPER_SCRIPTS/install.sh
|
2020-06-04 15:09:41 +03:00
|
|
|
source $HELPER_SCRIPTS/os.sh
|
2019-12-13 09:48:00 -05:00
|
|
|
|
|
|
|
|
docker_package=moby
|
|
|
|
|
|
2020-06-04 15:09:41 +03:00
|
|
|
# There is no stable docker-moby for Ubuntu 20 at the moment
|
|
|
|
|
if isUbuntu20 ; then
|
|
|
|
|
add-apt-repository "deb [arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/20.04/prod testing main"
|
|
|
|
|
fi
|
|
|
|
|
|
2019-12-13 09:48:00 -05:00
|
|
|
## Check to see if docker is already installed
|
|
|
|
|
echo "Determing if Docker ($docker_package) is installed"
|
2020-07-09 15:14:28 +03:00
|
|
|
if ! IsPackageInstalled $docker_package; then
|
2019-12-13 09:48:00 -05:00
|
|
|
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
|
2020-04-17 00:05:31 +04:00
|
|
|
apt-get install --no-install-recommends -y moby-buildx
|
2019-12-13 09:48:00 -05:00
|
|
|
else
|
|
|
|
|
echo "Docker ($docker_package) is already installed"
|
|
|
|
|
fi
|
|
|
|
|
|
2020-06-30 08:57:34 +03:00
|
|
|
# Enable docker.service
|
|
|
|
|
systemctl is-active --quiet docker.service || systemctl start docker.service
|
|
|
|
|
systemctl is-enabled --quiet docker.service || systemctl enable docker.service
|
|
|
|
|
|
2019-12-13 09:48:00 -05:00
|
|
|
# Run tests to determine that the software installed as expected
|
|
|
|
|
echo "Testing to make sure that script performed as expected, and basic scenarios work"
|
2020-04-22 20:36:47 +04:00
|
|
|
echo "Checking the docker-moby and moby-buildx"
|
2019-12-13 09:48:00 -05:00
|
|
|
if ! command -v docker; then
|
|
|
|
|
echo "docker was not installed"
|
|
|
|
|
exit 1
|
2020-04-23 18:41:52 +04:00
|
|
|
elif ! [[ $(docker buildx) ]]; then
|
2020-04-22 20:36:47 +04:00
|
|
|
echo "Docker-Buildx was not installed"
|
|
|
|
|
exit 1
|
2019-12-13 09:48:00 -05:00
|
|
|
else
|
2020-04-22 00:01:16 +04:00
|
|
|
echo "Docker-moby and Docker-buildx checking the successfull"
|
2019-12-13 09:48:00 -05:00
|
|
|
# Docker daemon takes time to come up after installing
|
|
|
|
|
sleep 10
|
|
|
|
|
set -e
|
|
|
|
|
docker info
|
|
|
|
|
set +e
|
|
|
|
|
fi
|
|
|
|
|
|
2020-09-08 14:40:56 +03:00
|
|
|
# Pull images
|
|
|
|
|
images=(
|
|
|
|
|
node:10
|
|
|
|
|
node:12
|
|
|
|
|
buildpack-deps:stretch
|
|
|
|
|
buildpack-deps:buster
|
|
|
|
|
node:10-alpine
|
|
|
|
|
node:12-alpine
|
|
|
|
|
debian:8
|
|
|
|
|
debian:9
|
|
|
|
|
alpine:3.7
|
|
|
|
|
alpine:3.8
|
|
|
|
|
alpine:3.9
|
|
|
|
|
alpine:3.10
|
|
|
|
|
ubuntu:14.04
|
|
|
|
|
docker.io/jekyll/builder
|
|
|
|
|
mcr.microsoft.com/azure-pipelines/node8-typescript
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
for image in "${images[@]}"; do
|
|
|
|
|
docker pull "$image"
|
|
|
|
|
done
|
2020-02-26 22:18:58 +04:00
|
|
|
|
2019-12-13 09:48:00 -05:00
|
|
|
## Add version information to the metadata file
|
|
|
|
|
echo "Documenting Docker version"
|
|
|
|
|
docker_version=$(docker -v)
|
2020-02-26 18:16:54 +04:00
|
|
|
DocumentInstalledItem "Docker-Moby ($docker_version)"
|
2020-04-21 15:42:06 +04:00
|
|
|
|
2020-04-22 00:01:16 +04:00
|
|
|
echo "Documenting Docker-buildx version"
|
2020-04-23 18:41:52 +04:00
|
|
|
DOCKER_BUILDX_VERSION=$(docker buildx version | cut -d ' ' -f2)
|
2020-04-22 20:36:47 +04:00
|
|
|
DocumentInstalledItem "Docker-Buildx ($DOCKER_BUILDX_VERSION)"
|
2020-09-08 14:40:56 +03:00
|
|
|
|
|
|
|
|
## Add container information to the metadata file
|
|
|
|
|
DocumentInstalledItem "Cached container images"
|
|
|
|
|
|
|
|
|
|
while read -r line; do
|
|
|
|
|
DocumentInstalledItemIndent "$line"
|
|
|
|
|
done <<< "$(docker images --digests --format '{{.Repository}}:{{.Tag}} (Digest: {{.Digest}})')"
|