@@ -21,36 +21,34 @@ ENV RUBY_VERSION="2.6.5" \
21
21
NODE_8_VERSION="8.16.0" \
22
22
GOLANG_VERSION="1.13.15" \
23
23
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" \
26
25
DOCKER_COMPOSE_VERSION="1.26.0"
27
26
28
27
ARG CHINA_REGION
29
28
30
29
# **************** Utilities *********************************************
31
30
ENV DOCKER_BUCKET="download.docker.com" \
32
31
DOCKER_CHANNEL="stable" \
33
- DOCKER_18_SHA256="c4857639514471e2d1aa6d567880b7fc226437ede462021ed44157d4dcd11dc8" \
34
- DOCKER_SHA256="9cd49fe82f6b7ec413b04daef35bc0c87b01d6da67611e5beef36291538d3145" \
32
+ DOCKER_SHA256="0259f8b6572f02cf0dafd7388ca0e4adfdbbfaba81cfb1b7443e89fccbed22c7" \
35
33
DIND_COMMIT="3b5fac462d21ca164b3778647420016315289034" \
36
34
DEBIAN_FRONTEND="noninteractive" \
37
35
SRC_DIR="/usr/src" \
38
36
EPEL_REPO="https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm"
39
37
40
38
# Install git, SSH, and other utilities
41
39
RUN set -ex \
42
- && yum install -y openssh-clients \
40
+ && yum install -yq openssh-clients \
43
41
&& mkdir ~/.ssh \
44
42
&& touch ~/.ssh/known_hosts \
45
43
&& ssh-keyscan -t rsa,dsa -H github.com >> ~/.ssh/known_hosts \
46
44
&& ssh-keyscan -t rsa,dsa -H bitbucket.org >> ~/.ssh/known_hosts \
47
45
&& chmod 600 ~/.ssh/known_hosts \
48
- && yum install -y $EPEL_REPO \
46
+ && yum install -yq $EPEL_REPO \
49
47
&& rpm --import https://download.mono-project.com/repo/xamarin.gpg \
50
48
&& curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo \
51
49
&& 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 \
54
52
bzr mercurial procps-ng \
55
53
ImageMagick \
56
54
openssl-devel libdb-devel \
@@ -76,51 +74,34 @@ RUN set -ex \
76
74
&& GIT_TAR_FILE=git-$GIT_VERSION.tar.gz \
77
75
&& GIT_SRC=https://github.com/git/git/archive/v${GIT_VERSION}.tar.gz \
78
76
&& curl -L -o $GIT_TAR_FILE $GIT_SRC \
79
- && tar zxvf $GIT_TAR_FILE \
77
+ && tar zxf $GIT_TAR_FILE \
80
78
&& cd git-$GIT_VERSION \
81
79
&& make -j4 prefix=/usr \
82
80
&& make install prefix=/usr \
83
81
&& cd .. ; rm -rf git-$GIT_VERSION \
84
82
&& rm -rf $GIT_TAR_FILE /tmp/*
85
83
86
84
# Install Docker
87
- ENV DOCKER_18_PATH=/usr/local/bin/docker18
88
- ENV DOCKER_PATH=/usr/local/bin/docker19
89
-
90
85
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 \
102
87
&& 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/ \
104
89
&& 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 \
110
90
&& 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
112
92
&& groupadd dockremap \
113
93
&& useradd -g dockremap dockremap \
114
94
&& echo 'dockremap:165536:65536' >> /etc/subuid \
115
95
&& 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 \
117
97
&& chmod +x /usr/local/bin/dind
118
98
119
99
# AWS Tools
120
100
# https://docs.aws.amazon.com/eks/latest/userguide/install-aws-iam-authenticator.html https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html
121
101
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 \
122
102
&& 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
124
105
125
106
VOLUME /var/lib/docker
126
107
@@ -129,7 +110,7 @@ COPY ssh_config /root/.ssh/config
129
110
130
111
# Configure SSM
131
112
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
133
114
COPY amazon-ssm-agent.json /etc/amazon/ssm/
134
115
135
116
COPY runtimes.yml /codebuild/image/config/runtimes.yml
@@ -163,9 +144,9 @@ ENV PATH="/usr/local/bin:$PATH" \
163
144
LC_ALL=C.UTF-8 \
164
145
LANG=C.UTF-8
165
146
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" \
169
150
&& export GNUPGHOME="$(mktemp -d)" \
170
151
&& (gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$GPG_KEY" \
171
152
|| 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 \
187
168
&& ldconfig \
188
169
# explicit path to "pip3" to ensure distribution-provided "pip3" cannot interfere
189
170
&& 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' \
191
172
&& /usr/local/python37/bin/python3 /tmp/get-pip.py "pip==$PYTHON_PIP_VERSION" \
192
173
&& rm /tmp/get-pip.py ; \
193
174
fi \
@@ -200,7 +181,7 @@ RUN yum install -y tcl-devel tk-devel bzip2-devel gdbm-devel libuuid-devel \
200
181
/usr/local/python37/bin/pip3 install --no-cache-dir --upgrade --force-reinstall "pip==$PYTHON_PIP_VERSION" \
201
182
&& /usr/local/python37/bin/pip3 install pipenv virtualenv --no-cache-dir
202
183
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 \
204
185
# then we use "pip list" to ensure we don't have more than one pip version installed
205
186
# https://github.com/docker-library/python/pull/100
206
187
&& [ "$(/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 \
224
205
225
206
# **************** PYTHON 3.8 *********************************************
226
207
# extra dependencies (over what buildpack-deps already includes)
227
- RUN yum install -y \
208
+ RUN yum install -yq \
228
209
tcl tcl-dev \
229
210
tk tk-dev \
230
211
uuid-dev \
@@ -235,8 +216,8 @@ ENV GPG_KEY E3FF2839C048B25C084DEBE9B26995E310250568
235
216
236
217
RUN set -ex \
237
218
\
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" \
240
221
&& export GNUPGHOME="$(mktemp -d)" \
241
222
&& (gpg --batch --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys "$GPG_KEY" \
242
223
|| gpg --batch --keyserver pgp.mit.edu --recv-keys "$GPG_KEY" ) \
@@ -284,7 +265,7 @@ ENV PYTHON_GET_PIP_SHA256 8d412752ae26b46a39a201ec618ef9ef7656c5b2d8529cdcbe60cd
284
265
285
266
RUN set -ex; \
286
267
\
287
- wget -O get-pip.py "$PYTHON_GET_PIP_URL" ; \
268
+ wget -qO get-pip.py "$PYTHON_GET_PIP_URL" ; \
288
269
echo "$PYTHON_GET_PIP_SHA256 *get-pip.py" | sha256sum --check --strict -; \
289
270
\
290
271
/usr/local/python38/bin/python3 get-pip.py \
@@ -336,10 +317,10 @@ RUN cd /usr/local/python38/bin \
336
317
RUN set -xe; \
337
318
mkdir -p $SRC_DIR; \
338
319
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" ; \
341
322
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" ; \
343
324
export GNUPGHOME="$(mktemp -d)" ; \
344
325
for key in $GPG_KEYS; do \
345
326
( gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" \
@@ -349,7 +330,7 @@ RUN cd /usr/local/python38/bin \
349
330
gpg --batch --verify php.tar.xz.asc php.tar.xz; \
350
331
rm -rf "$GNUPGHOME" ; \
351
332
set -eux; \
352
- yum install -y libedit-devel dpkg-dev libargon2-devel re2c; \
333
+ yum install -yq libedit-devel dpkg-dev libargon2-devel re2c; \
353
334
export \
354
335
CFLAGS="$PHP_CFLAGS" \
355
336
CPPFLAGS="$PHP_CPPFLAGS" \
@@ -421,7 +402,7 @@ RUN cd /usr/local/python38/bin \
421
402
&& n $NODE_VERSION && npm install --save-dev -g grunt && npm install --save-dev -g grunt-cli && npm install --save-dev -g webpack \
422
403
&& curl -sSL https://dl.yarnpkg.com/rpm/yarn.repo | tee /etc/yum.repos.d/yarn.repo \
423
404
&& rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg \
424
- && yum install -y yarn \
405
+ && yum install -yq yarn \
425
406
&& yarn --version \
426
407
&& cd / && rm -rf $N_SRC_DIR \
427
408
&& yum clean all
@@ -459,15 +440,15 @@ ENV JDK_DOWNLOAD_URL="https://d3pxv6yz143wms.cloudfront.net/${JDK_VERSION}/${JDK
459
440
460
441
RUN set -ex \
461
442
# 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 \
463
444
# Ensure Java cacerts symlink points to valid location
464
445
&& update-ca-trust \
465
446
# Install Amazon Corretto 11
466
447
# Note: We will use update-alternatives to make sure JDK11 has higher priority for all the tools
467
448
&& mkdir -p $JAVA_HOME \
468
449
&& curl -LSso /var/tmp/$JDK_DOWNLOAD_TAR $JDK_DOWNLOAD_URL \
469
450
&& 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 \
471
452
&& for tool_path in $JAVA_HOME/bin/*; do \
472
453
tool=`basename $tool_path`; \
473
454
update-alternatives --install /usr/bin/$tool $tool $tool_path 10000; \
@@ -483,14 +464,14 @@ RUN set -ex \
483
464
&& mkdir -p $MAVEN_HOME \
484
465
&& 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 \
485
466
&& 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 \
487
468
&& update-alternatives --install /usr/bin/mvn mvn /opt/maven/bin/mvn 10000 \
488
469
&& mkdir -p $MAVEN_CONFIG \
489
470
# Install Gradle
490
471
&& mkdir -p $GRADLE_PATH \
491
472
&& 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 \
494
475
&& echo -e "$GRADLE_DOWNLOADS_SHA256" | grep "$version" | sed "s|$version|$GRADLE_PATH/gradle-$version-all.zip|" | sha256sum -c - \
495
476
&& mkdir "/tmp/gradle-$version" \
496
477
&& "/usr/local/gradle-$version/bin/gradle" -p "/tmp/gradle-$version" wrapper \
@@ -500,12 +481,12 @@ RUN set -ex \
500
481
&& if [ "$version" != "$GRADLE_VERSION" ]; then rm -rf "/usr/local/gradle-$version" ; fi; \
501
482
}; done \
502
483
# 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 \
505
486
# Install SBT
506
487
&& curl -fSL "https://github.com/sbt/sbt/releases/download/v${SBT_VERSION}/sbt-${SBT_VERSION}.tgz" -o sbt.tgz \
507
488
&& 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/ \
509
490
&& rm sbt.tgz
510
491
ENV PATH "/usr/local/bin/sbt/bin:$PATH"
511
492
RUN sbt version
@@ -523,12 +504,12 @@ ENV GOLANG_DOWNLOAD_SHA256="a5c59e3f0aeaf6e939790152a8bfabb91d70c9787afb7aee06ae
523
504
RUN set -ex \
524
505
&& mkdir -p "$GOPATH/src" "$GOPATH/bin" \
525
506
&& 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 \
527
508
&& echo "$GOLANG_DOWNLOAD_SHA256 /tmp/golang.tar.gz" | sha256sum -c - \
528
509
&& tar -xzf /tmp/golang.tar.gz -C /tmp \
529
510
&& mv /tmp/go /usr/local/go13 \
530
511
&& 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" \
532
513
&& chmod +x "$GOPATH/bin/dep"
533
514
534
515
RUN ln -s /usr/local/go13 /usr/local/go
@@ -540,7 +521,7 @@ ENV PATH="$GOPATH/bin:/usr/local/go/bin:$PATH"
540
521
ENV GOLANG_12_DOWNLOAD_SHA256="3606dc6ce8b4a5faad81d7365714a86b3162df041a32f44568418c9efbd7f646"
541
522
542
523
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 \
544
525
&& echo "$GOLANG_12_DOWNLOAD_SHA256 /tmp/golang.tar.gz" | sha256sum -c - \
545
526
&& tar -xzf /tmp/golang.tar.gz -C /tmp \
546
527
&& mv /tmp/go /usr/local/go12 \
@@ -549,9 +530,9 @@ RUN set -ex \
549
530
# **************** END GO **********************************************************
550
531
551
532
RUN set -ex \
552
- && yum install -y openssl \
533
+ && yum install -yq openssl \
553
534
&& 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 \
555
536
&& cd stunnel-5.55 \
556
537
&& ./configure \
557
538
&& make \
0 commit comments