From fc964cba10adbe13ad3c89543f76377f56fd99fe Mon Sep 17 00:00:00 2001 From: Trygve Lie Date: Tue, 1 Mar 2022 14:55:55 +0100 Subject: [PATCH] Use Corepack for selecting package manager --- Dockerfile.base | 6 +++--- Dockerfile.onbuild | 8 +++----- release.sh | 2 +- scripts/install-dependencies.sh | 34 ++++----------------------------- 4 files changed, 11 insertions(+), 39 deletions(-) diff --git a/Dockerfile.base b/Dockerfile.base index 9e0f7da..4aba738 100644 --- a/Dockerfile.base +++ b/Dockerfile.base @@ -1,9 +1,9 @@ FROM dockerhubproxy.schibsted.io/node:NODE_VERSION_TEMPLATE-alpine -ARG YARN_VERSION +# ARG YARN_VERSION LABEL maintainer "Simen Bekkhus " LABEL no.finn.docker.node-version "$NODE_VERSION" -LABEL no.finn.docker.yarn-version "$YARN_VERSION" +# LABEL no.finn.docker.yarn-version "$YARN_VERSION" ENV NODE_ENV=production PATH="/home/node/scripts:${PATH}" SECRETS_DIR="/var/run/secrets/fiaas" @@ -14,7 +14,7 @@ WORKDIR /home/node/src RUN apk upgrade -U && \ apk add --no-cache dumb-init ca-certificates wget bash && \ - npm i -g pnpm && \ + # npm i -g pnpm && \ update-ca-certificates COPY scripts /home/node/scripts/ diff --git a/Dockerfile.onbuild b/Dockerfile.onbuild index 653e910..a7b5ac4 100644 --- a/Dockerfile.onbuild +++ b/Dockerfile.onbuild @@ -10,8 +10,7 @@ ONBUILD ARG YARN_VERSION # Allow installation as non-root user ONBUILD RUN npm config set unsafe-perm true -# All but package.json is optional -ONBUILD COPY package.json yarn.lock* .yarnrc* .npmrc* npm-shrinkwrap.json* package-lock.json* pnpm-lock.yaml* ./ +ONBUILD COPY . ./ # Install dependencies for native builds # This is in one giant command to keep the image size small @@ -19,11 +18,10 @@ ONBUILD COPY package.json yarn.lock* .yarnrc* .npmrc* npm-shrinkwrap.json* packa ONBUILD RUN apk upgrade -U && \ apk add --no-cache --virtual build-dependencies make gcc g++ python git || \ apk add --no-cache --virtual build-dependencies make gcc g++ python3 git && \ + corepack enable && \ + corepack prepare --activate --all && \ install-dependencies.sh && \ - rm /usr/local/bin/yarn && npm uninstall --loglevel warn --global pnpm && npm uninstall --loglevel warn --global npm && \ apk del build-dependencies -ONBUILD COPY . ./ - ONBUILD RUN chown -R node:node . ONBUILD USER node diff --git a/release.sh b/release.sh index 22434ec..7c41a26 100755 --- a/release.sh +++ b/release.sh @@ -32,7 +32,7 @@ fi versions=(${VERSION//./ }) -tag=containers.schibsted.io/finntech/node +tag=containers.schibsted.io/finntech/nodejs onbuild_tag="$tag:onbuild" test_tag="$tag:test" test_onbuild_tag="$test_tag-onbuild" diff --git a/scripts/install-dependencies.sh b/scripts/install-dependencies.sh index 1f017b1..a9d4d11 100755 --- a/scripts/install-dependencies.sh +++ b/scripts/install-dependencies.sh @@ -1,35 +1,9 @@ #!/usr/bin/env bash -# This script does `yarn install` if a `yarn.lock` file is present, otherwise `npm install` - set -e -if [[ -n "${FAIL_ON_DIRTY_LOCKFILE}" ]]; then - if [[ "${YARN_VERSION:0:2}" == "2." ]]; then - YARN_OPTS="--immutable" - else - YARN_OPTS="--frozen-lockfile" - fi - NPM_CMD="ci" -else - YARN_OPTS="" - NPM_CMD="install" -fi +# Execute install with corepack, return true to ignore errors from non matching package managers +corepack yarn install || true +corepack pnpm install || true +corepack npm ci || true -if [[ -f "/home/node/src/yarn.lock" || -f "/home/node/src/.yarnrc.yml" || -f "/home/node/src/.yarnrc" ]]; then - if [[ -n $YARN_VERSION ]]; then - yarn set version $YARN_VERSION - fi - yarn install $YARN_OPTS - # Check if the installed tree is correct. Install all dependencies if not - yarn check --verify-tree || NODE_ENV=development yarn install - yarn cache clean -elif [[ -f "/home/node/src/pnpm-lock.yaml" ]]; then - pnpm i --prefer-frozen-lockfile --prod -elif [[ -f "/home/node/src/package-lock.json" || -f "/home/node/src/npm-shrinkwrap.json" ]]; then - npm $NPM_CMD - npm cache clean --force -else - npm install - npm cache clean --force -fi