Skip to content

Commit 981cb94

Browse files
committed
Upgrade Docker to 20.10.9 and pin python setuptools to 57.4.0
1 parent a07b8a3 commit 981cb94

File tree

7 files changed

+265
-288
lines changed

7 files changed

+265
-288
lines changed

al2/aarch64/standard/1.0/Dockerfile

Lines changed: 41 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -21,36 +21,34 @@ ENV RUBY_VERSION="2.6.5" \
2121
NODE_8_VERSION="8.16.0" \
2222
GOLANG_VERSION="1.13.15" \
2323
GOLANG_12_VERSION="1.12.9" \
24-
DOCKER_18_VERSION="18.09.6" \
25-
DOCKER_VERSION="19.03.11" \
24+
DOCKER_VERSION="20.10.9" \
2625
DOCKER_COMPOSE_VERSION="1.26.0"
2726

2827
ARG CHINA_REGION
2928

3029
#**************** Utilities *********************************************
3130
ENV DOCKER_BUCKET="download.docker.com" \
3231
DOCKER_CHANNEL="stable" \
33-
DOCKER_18_SHA256="c4857639514471e2d1aa6d567880b7fc226437ede462021ed44157d4dcd11dc8" \
34-
DOCKER_SHA256="9cd49fe82f6b7ec413b04daef35bc0c87b01d6da67611e5beef36291538d3145" \
32+
DOCKER_SHA256="0259f8b6572f02cf0dafd7388ca0e4adfdbbfaba81cfb1b7443e89fccbed22c7" \
3533
DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \
3634
DEBIAN_FRONTEND="noninteractive" \
3735
SRC_DIR="/usr/src" \
3836
EPEL_REPO="https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm"
3937

4038
# Install git, SSH, and other utilities
4139
RUN set -ex \
42-
&& yum install -y openssh-clients \
40+
&& yum install -yq openssh-clients \
4341
&& mkdir ~/.ssh \
4442
&& touch ~/.ssh/known_hosts \
4543
&& ssh-keyscan -t rsa,dsa -H github.com >> ~/.ssh/known_hosts \
4644
&& ssh-keyscan -t rsa,dsa -H bitbucket.org >> ~/.ssh/known_hosts \
4745
&& chmod 600 ~/.ssh/known_hosts \
48-
&& yum install -y $EPEL_REPO \
46+
&& yum install -yq $EPEL_REPO \
4947
&& rpm --import https://download.mono-project.com/repo/xamarin.gpg \
5048
&& curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo \
5149
&& amazon-linux-extras enable corretto8 \
52-
&& yum groupinstall -y "Development tools" \
53-
&& yum install -y wget fakeroot jq \
50+
&& yum groupinstall -yq "Development tools" \
51+
&& yum install -yq wget fakeroot jq \
5452
bzr mercurial procps-ng \
5553
ImageMagick \
5654
openssl-devel libdb-devel \
@@ -76,51 +74,34 @@ RUN set -ex \
7674
&& GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \
7775
&& GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \
7876
&& curl -L -o $GIT_TAR_FILE $GIT_SRC \
79-
&& tar zxvf $GIT_TAR_FILE \
77+
&& tar zxf $GIT_TAR_FILE \
8078
&& cd git-$GIT_VERSION \
8179
&& make -j4 prefix=/usr \
8280
&& make install prefix=/usr \
8381
&& cd .. ; rm -rf git-$GIT_VERSION \
8482
&& rm -rf $GIT_TAR_FILE /tmp/*
8583

8684
# Install Docker
87-
ENV DOCKER_18_PATH=/usr/local/bin/docker18
88-
ENV DOCKER_PATH=/usr/local/bin/docker19
89-
9085
RUN set -ex \
91-
# for old version (docker 18)
92-
&& mkdir $DOCKER_18_PATH; cd $DOCKER_18_PATH; curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/aarch64/docker-${DOCKER_18_VERSION}.tgz" -o docker.tgz \
93-
&& echo "${DOCKER_18_SHA256} *docker.tgz" | sha256sum -c - \
94-
&& tar --extract --file docker.tgz --strip-components 1 --directory $DOCKER_18_PATH \
95-
&& rm docker.tgz \
96-
&& for tool_path in $DOCKER_18_PATH/*; do \
97-
tool=`basename $tool_path`; \
98-
update-alternatives --install /usr/local/bin/$tool $tool $tool_path 10000; \
99-
done \
100-
# for new version (docker 19)
101-
&& mkdir $DOCKER_PATH; cd $DOCKER_PATH ; curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/aarch64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \
86+
&& curl -fSL "https://${DOCKER_BUCKET}/linux/static/${DOCKER_CHANNEL}/aarch64/docker-${DOCKER_VERSION}.tgz" -o docker.tgz \
10287
&& echo "${DOCKER_SHA256} *docker.tgz" | sha256sum -c - \
103-
&& tar --extract --file docker.tgz --strip-components 1 --directory $DOCKER_PATH \
88+
&& tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ \
10489
&& rm docker.tgz \
105-
&& for tool_path in $DOCKER_PATH/*; do \
106-
tool=`basename $tool_path`; \
107-
update-alternatives --install /usr/local/bin/$tool $tool $tool_path 10000; \
108-
update-alternatives --set $tool $tool_path; \
109-
done \
11090
&& docker -v \
111-
# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box
91+
# set up subuid/subgid so that "--userns-remap=default" works out-of-the-box
11292
&& groupadd dockremap \
11393
&& useradd -g dockremap dockremap \
11494
&& echo 'dockremap:165536:65536' >> /etc/subuid \
11595
&& echo 'dockremap:165536:65536' >> /etc/subgid \
116-
&& wget "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \
96+
&& wget -q "https://raw.githubusercontent.com/docker/docker/${DIND_COMMIT}/hack/dind" -O /usr/local/bin/dind \
11797
&& chmod +x /usr/local/bin/dind
11898

11999
# AWS Tools
120100
# https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html
121101
RUN curl -sS -o /usr/local/bin/aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.16.8/2020-04-16/bin/linux/arm64/aws-iam-authenticator \
122102
&& curl -sS -o /usr/local/bin/kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.16.8/2020-04-16/bin/linux/arm64/kubectl \
123-
&& chmod +x /usr/local/bin/kubectl /usr/local/bin/aws-iam-authenticator
103+
&& curl -sS -o /usr/local/bin/ecs-cli https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-linux-arm64-latest \
104+
&& chmod +x /usr/local/bin/kubectl /usr/local/bin/aws-iam-authenticator /usr/local/bin/ecs-cli
124105

125106
VOLUME /var/lib/docker
126107

@@ -129,7 +110,7 @@ COPY ssh_config /root/.ssh/config
129110

130111
# Configure SSM
131112
RUN set -ex \
132-
&& yum install -y https://s3.amazonaws.com/amazon-ssm-us-east-1/3.0.1390.0/linux_arm64/amazon-ssm-agent.rpm
113+
&& yum install -yq https://s3.amazonaws.com/amazon-ssm-us-east-1/3.0.1390.0/linux_arm64/amazon-ssm-agent.rpm
133114
COPY amazon-ssm-agent.json /etc/amazon/ssm/
134115

135116
COPY runtimes.yml /codebuild/image/config/runtimes.yml
@@ -163,9 +144,9 @@ ENV PATH="/usr/local/bin:$PATH" \
163144
LC_ALL=C.UTF-8 \
164145
LANG=C.UTF-8
165146

166-
RUN yum install -y tcl-devel tk-devel bzip2-devel gdbm-devel libuuid-devel \
167-
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_37_VERSION%%[a-z]*}/Python-$PYTHON_37_VERSION.tar.xz" \
168-
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_37_VERSION%%[a-z]*}/Python-$PYTHON_37_VERSION.tar.xz.asc" \
147+
RUN yum install -yq tcl-devel tk-devel bzip2-devel gdbm-devel libuuid-devel \
148+
&& wget -qO python.tar.xz "https://www.python.org/ftp/python/${PYTHON_37_VERSION%%[a-z]*}/Python-$PYTHON_37_VERSION.tar.xz" \
149+
&& wget -qO python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_37_VERSION%%[a-z]*}/Python-$PYTHON_37_VERSION.tar.xz.asc" \
169150
&& export GNUPGHOME="$(mktemp -d)" \
170151
&& (gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEY" \
171152
|| gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEY" \
@@ -187,7 +168,7 @@ RUN yum install -y tcl-devel tk-devel bzip2-devel gdbm-devel libuuid-devel \
187168
&& ldconfig \
188169
# explicit path to "pip3" to ensure distribution-provided "pip3" cannot interfere
189170
&& if [ ! -e /usr/local/bin/pip3 ]; then \
190-
wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
171+
wget -qO /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \
191172
&& /usr/local/python37/bin/python3 /tmp/get-pip.py "pip==$PYTHON_PIP_VERSION" \
192173
&& rm /tmp/get-pip.py ; \
193174
fi \
@@ -200,7 +181,7 @@ RUN yum install -y tcl-devel tk-devel bzip2-devel gdbm-devel libuuid-devel \
200181
/usr/local/python37/bin/pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \
201182
&& /usr/local/python37/bin/pip3 install pipenv virtualenv --no-cache-dir
202183

203-
RUN /usr/local/python37/bin/pip3 install --no-cache-dir --upgrade setuptools wheel tox codecov \
184+
RUN /usr/local/python37/bin/pip3 install --no-cache-dir --upgrade 'setuptools==57.4.0' wheel tox codecov \
204185
# then we use "pip list" to ensure we don't have more than one pip version installed
205186
# https://github.com/docker-library/python/pull/100
206187
&& [ "$(/usr/local/python37/bin/pip3 list |tac|tac| awk -F '[ ()]+' '$1 == "pip" { print $2; exit }')" = "$PYTHON_PIP_VERSION" ] \
@@ -224,7 +205,7 @@ RUN cd /usr/local/python37/bin \
224205

225206
#**************** PYTHON 3.8 *********************************************
226207
# extra dependencies (over what buildpack-deps already includes)
227-
RUN yum install -y \
208+
RUN yum install -yq \
228209
tcl tcl-dev \
229210
tk tk-dev \
230211
uuid-dev \
@@ -235,8 +216,8 @@ ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568
235216

236217
RUN set -ex \
237218
\
238-
&& wget -O python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
239-
&& wget -O python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
219+
&& wget -qO python.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \
220+
&& wget -qO python.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \
240221
&& export GNUPGHOME="$(mktemp -d)" \
241222
&& (gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEY" \
242223
|| gpg --batch --keyserver pgp.mit.edu --recv-keys "$GPG_KEY") \
@@ -284,7 +265,7 @@ ENV PYTHON_GET_PIP_SHA256 8d412752ae26b46a39a201ec618ef9ef7656c5b2d8529cdcbe60cd
284265

285266
RUN set -ex; \
286267
\
287-
wget -O get-pip.py "$PYTHON_GET_PIP_URL"; \
268+
wget -qO get-pip.py "$PYTHON_GET_PIP_URL"; \
288269
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \
289270
\
290271
/usr/local/python38/bin/python3 get-pip.py \
@@ -336,10 +317,10 @@ RUN cd /usr/local/python38/bin \
336317
RUN set -xe; \
337318
mkdir -p $SRC_DIR; \
338319
cd $SRC_DIR; \
339-
yum install -y curl-devel; \
340-
wget -O php.tar.xz "$PHP_URL"; \
320+
yum install -yq curl-devel; \
321+
wget -qO php.tar.xz "$PHP_URL"; \
341322
echo "$PHP_DOWNLOAD_SHA *php.tar.xz" | sha256sum -c -; \
342-
wget -O php.tar.xz.asc "$PHP_ASC_URL"; \
323+
wget -qO php.tar.xz.asc "$PHP_ASC_URL"; \
343324
export GNUPGHOME="$(mktemp -d)"; \
344325
for key in $GPG_KEYS; do \
345326
( gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" \
@@ -349,7 +330,7 @@ RUN cd /usr/local/python38/bin \
349330
gpg --batch --verify php.tar.xz.asc php.tar.xz; \
350331
rm -rf "$GNUPGHOME"; \
351332
set -eux; \
352-
yum install -y libedit-devel dpkg-dev libargon2-devel re2c; \
333+
yum install -yq libedit-devel dpkg-dev libargon2-devel re2c; \
353334
export \
354335
CFLAGS="$PHP_CFLAGS" \
355336
CPPFLAGS="$PHP_CPPFLAGS" \
@@ -421,7 +402,7 @@ RUN cd /usr/local/python38/bin \
421402
&& n $NODE_VERSION && npm install --save-dev -g grunt && npm install --save-dev -g grunt-cli && npm install --save-dev -g webpack \
422403
&& curl -sSL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo \
423404
&& rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg \
424-
&& yum install -y yarn \
405+
&& yum install -yq yarn \
425406
&& yarn --version \
426407
&& cd / && rm -rf $N_SRC_DIR \
427408
&& yum clean all
@@ -459,15 +440,15 @@ ENV JDK_DOWNLOAD_URL="https://d3pxv6yz143wms.cloudfront.net/${JDK_VERSION}/${JDK
459440

460441
RUN set -ex \
461442
# Install Amazon Corretto 8
462-
&& yum -y update; yum -y install java-1.8.0-amazon-corretto-devel \
443+
&& yum -yq update; yum -yq install java-1.8.0-amazon-corretto-devel \
463444
# Ensure Java cacerts symlink points to valid location
464445
&& update-ca-trust \
465446
# Install Amazon Corretto 11
466447
# Note: We will use update-alternatives to make sure JDK11 has higher priority for all the tools
467448
&& mkdir -p $JAVA_HOME \
468449
&& curl -LSso /var/tmp/$JDK_DOWNLOAD_TAR $JDK_DOWNLOAD_URL \
469450
&& echo "$JDK_DOWNLOAD_SHA256 /var/tmp/$JDK_DOWNLOAD_TAR" | sha256sum -c - \
470-
&& tar xzvf /var/tmp/$JDK_DOWNLOAD_TAR -C $JAVA_HOME --strip-components=1 \
451+
&& tar xzf /var/tmp/$JDK_DOWNLOAD_TAR -C $JAVA_HOME --strip-components=1 \
471452
&& for tool_path in $JAVA_HOME/bin/*; do \
472453
tool=`basename $tool_path`; \
473454
update-alternatives --install /usr/bin/$tool $tool $tool_path 10000; \
@@ -483,14 +464,14 @@ RUN set -ex \
483464
&& mkdir -p $MAVEN_HOME \
484465
&& curl -LSso /var/tmp/apache-maven-$MAVEN_VERSION-bin.tar.gz https://apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \
485466
&& echo "$MAVEN_DOWNLOAD_SHA512 /var/tmp/apache-maven-$MAVEN_VERSION-bin.tar.gz" | sha512sum -c - \
486-
&& tar xzvf /var/tmp/apache-maven-$MAVEN_VERSION-bin.tar.gz -C $MAVEN_HOME --strip-components=1 \
467+
&& tar xzf /var/tmp/apache-maven-$MAVEN_VERSION-bin.tar.gz -C $MAVEN_HOME --strip-components=1 \
487468
&& update-alternatives --install /usr/bin/mvn mvn /opt/maven/bin/mvn 10000 \
488469
&& mkdir -p $MAVEN_CONFIG \
489470
# Install Gradle
490471
&& mkdir -p $GRADLE_PATH \
491472
&& for version in $INSTALLED_GRADLE_VERSIONS; do { \
492-
wget "https://services.gradle.org/distributions/gradle-$version-all.zip" -O "$GRADLE_PATH/gradle-$version-all.zip" \
493-
&& unzip "$GRADLE_PATH/gradle-$version-all.zip" -d /usr/local \
473+
wget -q "https://services.gradle.org/distributions/gradle-$version-all.zip" -O "$GRADLE_PATH/gradle-$version-all.zip" \
474+
&& unzip -q "$GRADLE_PATH/gradle-$version-all.zip" -d /usr/local \
494475
&& echo -e "$GRADLE_DOWNLOADS_SHA256" | grep "$version" | sed "s|$version|$GRADLE_PATH/gradle-$version-all.zip|" | sha256sum -c - \
495476
&& mkdir "/tmp/gradle-$version" \
496477
&& "/usr/local/gradle-$version/bin/gradle" -p "/tmp/gradle-$version" wrapper \
@@ -500,12 +481,12 @@ RUN set -ex \
500481
&& if [ "$version" != "$GRADLE_VERSION" ]; then rm -rf "/usr/local/gradle-$version"; fi; \
501482
}; done \
502483
# Install default GRADLE_VERSION to path
503-
&& ln -s /usr/local/gradle-$GRADLE_VERSION/bin/gradle /usr/bin/gradle \
504-
&& rm -rf $GRADLE_PATH \
484+
&& ln -s /usr/local/gradle-$GRADLE_VERSION/bin/gradle /usr/bin/gradle \
485+
&& rm -rf $GRADLE_PATH \
505486
# Install SBT
506487
&& curl -fSL "https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.tgz" -o sbt.tgz \
507488
&& echo "${SBT_DOWNLOAD_SHA256} *sbt.tgz" | sha256sum -c - \
508-
&& tar xzvf sbt.tgz -C /usr/local/bin/ \
489+
&& tar xzf sbt.tgz -C /usr/local/bin/ \
509490
&& rm sbt.tgz
510491
ENV PATH "/usr/local/bin/sbt/bin:$PATH"
511492
RUN sbt version
@@ -523,12 +504,12 @@ ENV GOLANG_DOWNLOAD_SHA256="a5c59e3f0aeaf6e939790152a8bfabb91d70c9787afb7aee06ae
523504
RUN set -ex \
524505
&& mkdir -p "$GOPATH/src" "$GOPATH/bin" \
525506
&& chmod -R 777 "$GOPATH" \
526-
&& wget "https://dl.google.com/go/go$GOLANG_VERSION.linux-arm64.tar.gz" -O /tmp/golang.tar.gz \
507+
&& wget -q "https://dl.google.com/go/go$GOLANG_VERSION.linux-arm64.tar.gz" -O /tmp/golang.tar.gz \
527508
&& echo "$GOLANG_DOWNLOAD_SHA256 /tmp/golang.tar.gz" | sha256sum -c - \
528509
&& tar -xzf /tmp/golang.tar.gz -C /tmp \
529510
&& mv /tmp/go /usr/local/go13 \
530511
&& rm -fr /tmp/* /var/tmp/* \
531-
&& wget "https://github.com/golang/dep/releases/download/v$DEP_VERSION/$DEP_BINARY" -O "$GOPATH/bin/dep" \
512+
&& wget -q "https://github.com/golang/dep/releases/download/v$DEP_VERSION/$DEP_BINARY" -O "$GOPATH/bin/dep" \
532513
&& chmod +x "$GOPATH/bin/dep"
533514

534515
RUN ln -s /usr/local/go13 /usr/local/go
@@ -540,7 +521,7 @@ ENV PATH="$GOPATH/bin:/usr/local/go/bin:$PATH"
540521
ENV GOLANG_12_DOWNLOAD_SHA256="3606dc6ce8b4a5faad81d7365714a86b3162df041a32f44568418c9efbd7f646"
541522

542523
RUN set -ex \
543-
&& wget "https://dl.google.com/go/go$GOLANG_12_VERSION.linux-arm64.tar.gz" -O /tmp/golang.tar.gz \
524+
&& wget -q "https://dl.google.com/go/go$GOLANG_12_VERSION.linux-arm64.tar.gz" -O /tmp/golang.tar.gz \
544525
&& echo "$GOLANG_12_DOWNLOAD_SHA256 /tmp/golang.tar.gz" | sha256sum -c - \
545526
&& tar -xzf /tmp/golang.tar.gz -C /tmp \
546527
&& mv /tmp/go /usr/local/go12 \
@@ -549,9 +530,9 @@ RUN set -ex \
549530
#**************** END GO **********************************************************
550531

551532
RUN set -ex \
552-
&& yum install -y openssl \
533+
&& yum install -yq openssl \
553534
&& curl -o stunnel-5.55.tar.gz https://www.stunnel.org/downloads/stunnel-5.55.tar.gz \
554-
&& tar xvfz stunnel-5.55.tar.gz \
535+
&& tar xfz stunnel-5.55.tar.gz \
555536
&& cd stunnel-5.55 \
556537
&& ./configure \
557538
&& make \

0 commit comments

Comments
 (0)