在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:install-docker开源软件地址:https://gitee.com/rancher/install-docker开源软件介绍:install-dockerScripts for docker-machine to install a particular docker version Hosted at https://releases.rancher.com/install-docker/x.y[.z].sh, e.g.:
Add new docker releaseExample adding 20.10.7 with diff from 20.10.6:
PREVIOUS_ADD_DOCKER_VERSION=20.10.6 ADD_DOCKER_VERSION=20.10.7 make add-new-version
Test releasesThe repo contains some tests to check if the docker install scripts are working fine on defined distros and versions. The tests are executed within a dind env for every
There is the default distros and versions definition to test: TEST_OS_IMAGE_NAME=(ubuntu centos debian)TEST_OS_IMAGE_TAG[0]="16.04 18.04 20.04"TEST_OS_IMAGE_TAG[1]="centos7 centos8"TEST_OS_IMAGE_TAG[2]="10" The test definition can be overwritten on every docker version folder, using the shell script file #!/bin/shDOCKER_GIT_COMMIT="3d8fe77c2c46c5b7571f94b42793905e5b3e42e4"TEST_OS_IMAGE_NAME=(ubuntu centos debian)TEST_OS_IMAGE_TAG[0]="20.04"TEST_OS_IMAGE_TAG[1]="centos7"TEST_OS_IMAGE_TAG[2]="10" Tip As dind test env doesn't use systemd, dockerd is started manually. The default timeout waiting until dockerd starts, is defined by env variable Sync releases
Previous manual instructions to add a new versionThis script is based on public docker-install release, https://github.com/docker/docker-install . Docker-install script is built from the docker repo, and it's patched to generate a docker install script for a concrete docker version. The patch is also adding support for To add a new docker installer version, follow these steps:
diff -uNr 20.10.2.orig.sh 20.10.2.sh--- 20.10.2.orig.sh 2021-01-28 23:47:45.000000000 +0100+++ 20.10.2.sh 2021-01-28 23:53:21.000000000 +0100@@ -21,26 +21,11 @@ # the script was uploaded (Should only be modified by upload job): SCRIPT_COMMIT_SHA="3d8fe77c2c46c5b7571f94b42793905e5b3e42e4" --# The channel to install from:-# * nightly-# * test-# * stable-# * edge (deprecated)-DEFAULT_CHANNEL_VALUE="stable"-if [ -z "$CHANNEL" ]; then- CHANNEL=$DEFAULT_CHANNEL_VALUE-fi--DEFAULT_DOWNLOAD_URL="https://download.docker.com"-if [ -z "$DOWNLOAD_URL" ]; then- DOWNLOAD_URL=$DEFAULT_DOWNLOAD_URL-fi--DEFAULT_REPO_FILE="docker-ce.repo"-if [ -z "$REPO_FILE" ]; then- REPO_FILE="$DEFAULT_REPO_FILE"-fi+CHANNEL="stable"+DOWNLOAD_URL="https://download.docker.com"+REPO_FILE="docker-ce.repo"+VERSION=20.10.2+DIND_TEST_WAIT=${DIND_TEST_WAIT:-3s} # Wait time until docker start at dind test env mirror='' DRY_RUN=${DRY_RUN:-}@@ -69,6 +54,18 @@ ;; esac +start_docker() {+ if [ ! -z $DIND_TEST ]; then+ # Starting dockerd manually due to dind env is not using systemd+ dockerd &+ sleep $DIND_TEST_WAIT+ elif [ -d '/run/systemd/system' ] ; then+ $sh_c 'systemctl start docker'+ else+ $sh_c 'service docker start'+ fi+}+ command_exists() { command -v "$@" > /dev/null 2>&1 }@@ -329,11 +326,20 @@ ;; centos|rhel)+ # installing centos packages+ lsb_dist="centos" if [ -z "$dist_version" ] && [ -r /etc/os-release ]; then dist_version="$(. /etc/os-release && echo "$VERSION_ID")" fi ;; + oracleserver)+ # installing centos packages+ lsb_dist="centos"+ # need to switch lsb_dist to match yum repo URL+ dist_version="$(rpm -q --whatprovides redhat-release --queryformat "%{VERSION}\n" | sed 's/\/.*//' | sed 's/\..*//' | sed 's/Server*//')"+ ;;+ *) if command_exists lsb_release; then dist_version="$(lsb_release --release | cut -f2)"@@ -404,6 +410,7 @@ $sh_c "apt-get install -y -qq --no-install-recommends docker-ce-cli=$cli_pkg_version >/dev/null" fi $sh_c "apt-get install -y -qq --no-install-recommends docker-ce$pkg_version >/dev/null"+ start_docker ) echo_docker_as_nonroot exit 0@@ -474,10 +481,25 @@ $sh_c "$pkg_manager install -y -q docker-ce-cli-$cli_pkg_version" fi $sh_c "$pkg_manager install -y -q docker-ce$pkg_version"+ if ! command_exists iptables; then+ $sh_c "$pkg_manager install -y -q iptables"+ fi+ start_docker ) echo_docker_as_nonroot exit 0 ;;+ rancheros)+ (+ set -x+ $sh_c "sleep 3;ros engine list --update"+ engine_version="$(sudo ros engine list | awk '{print $2}' | grep ${docker_version} | tail -n 1)"+ if [ "$engine_version" != "" ]; then+ $sh_c "ros engine switch -f $engine_version"+ fi+ )+ exit 0+ ;; *) if [ -z "$lsb_dist" ]; then if is_darwin; then
#!/bin/shDOCKER_GIT_COMMIT="3d8fe77c2c46c5b7571f94b42793905e5b3e42e4"
|
请发表评论