Created
August 9, 2021 12:58
-
-
Save il-m-yamagishi/0b15988ad8aea86841bd0ff64df23748 to your computer and use it in GitHub Desktop.
Dockerfile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM debian:buster | |
# @link https://github.com/nodejs/docker-node/blob/fdf244039755aead02405a0c27336f225d402d1f/15/buster/Dockerfile | |
RUN groupadd --gid 1000 node \ | |
&& useradd --uid 1000 --gid node --shell /bin/bash --create-home node | |
ENV NODE_VERSION 15.7.0 | |
RUN ARCH= && dpkgArch="$(dpkg --print-architecture)" \ | |
&& case "${dpkgArch##*-}" in \ | |
amd64) ARCH='x64';; \ | |
ppc64el) ARCH='ppc64le';; \ | |
s390x) ARCH='s390x';; \ | |
arm64) ARCH='arm64';; \ | |
armhf) ARCH='armv7l';; \ | |
i386) ARCH='x86';; \ | |
*) echo "unsupported architecture"; exit 1 ;; \ | |
esac \ | |
&& set -ex \ | |
# ビルドに必要なものをインストール | |
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg python3 g++ make python3-distutils --no-install-recommends \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& wget https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}.tar.gz \ | |
&& tar zxf node-v${NODE_VERSION}.tar.gz \ | |
&& cd node-v${NODE_VERSION} \ | |
&& ./configure --experimental-quic \ | |
&& make -j16 \ | |
&& make install \ | |
# smoke tests | |
&& node --version \ | |
&& npm --version \ | |
&& cd .. \ | |
&& rm -rf node-v${NODE_VERSION}.tar.gz node-v${NODE_VERSION} | |
ENV YARN_VERSION 1.22.5 | |
RUN set -ex \ | |
&& savedAptMark="$(apt-mark showmanual)" \ | |
&& apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& for key in \ | |
6A010C5166006599AA17F08146C2130DFD2497F5 \ | |
; do \ | |
gpg --batch --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys "$key" || \ | |
gpg --batch --keyserver hkp://ipv4.pool.sks-keyservers.net --recv-keys "$key" || \ | |
gpg --batch --keyserver hkp://pgp.mit.edu:80 --recv-keys "$key" ; \ | |
done \ | |
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ | |
&& curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" \ | |
&& gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ | |
&& mkdir -p /opt \ | |
&& tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ \ | |
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn \ | |
&& ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg \ | |
&& rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz \ | |
&& apt-mark auto '.*' > /dev/null \ | |
&& { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } \ | |
&& find /usr/local -type f -executable -exec ldd '{}' ';' \ | |
| awk '/=>/ { print $(NF-1) }' \ | |
| sort -u \ | |
| xargs -r dpkg-query --search \ | |
| cut -d: -f1 \ | |
| sort -u \ | |
| xargs -r apt-mark manual \ | |
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ | |
# smoke test | |
&& yarn --version | |
COPY docker-entrypoint.sh /usr/local/bin/ | |
ENTRYPOINT ["docker-entrypoint.sh"] | |
CMD [ "node" ] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment