Files
devops-lib-gcp/resources/com/meesho/node-Dockerfile
T
2026-08-26 02:02:24 +05:30

59 lines
2.2 KiB
Plaintext

FROM ${buildRegistry}/build/node:${version}-slim-secure-multiarch_v2.0 as build-env
WORKDIR /usr/src/app
COPY id_github_jenkins /root/.ssh/id_rsa
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts
COPY . ./
<% add_files.each { print "COPY ${it.path} ${it.target}\n" } %>
RUN ls -al && \
echo 'NPM Install...' && \
<% if (npm_install_arg) { %>\
echo 'Using custom npm install command: ${npm_install_arg}' && \
${npm_install_arg} && \
<% } else { %>\
npm ci && \
<% } %>\
echo 'Ensuring .npmrc is available in subdirectories...' && \
for subdir in server client; do \
if [ -d "\$subdir" ] && [ -f .npmrc ] && [ ! -f "\$subdir/.npmrc" ]; then \
cp -v .npmrc "\$subdir/.npmrc"; \
fi; \
done && \
<% if (pbac_enabled) { %>\
echo 'Installing PBAC Registry Sync CLI...' && \
git config --global url."git@github.com:".insteadOf "https://github.com/" && \
npm install -g pbac-registry-sync-cli --registry=${npm_registry} && \
echo 'Syncing PBAC Registry for scope: ${pbac_scope_name} environment: ${pbac_env}' && \
sync-pbac-registry ${pbac_scope_name} ${pbac_env} && \
echo 'PBAC Registry Sync Completed' && \
echo 'Copying .npmrc to subdirectories for proper registry resolution...' && \
for subdir in server client; do \
if [ -d "\$subdir" ] && [ ! -f "\$subdir/.npmrc" ]; then \
cp -v .npmrc "\$subdir/.npmrc"; \
fi; \
done && \
<% } %>\
if ! ${skip_sonar}; then \
cat .env | grep 'SONAR_' && \
echo 'Installing Java 17...' && \
if [ "\$(cat /etc/os-release | grep 'ID=' | awk -F= '{print \$2}' | sed '2d')" = 'alpine' ]; then \
echo "Alpine" && \
apk add --no-cache openjdk17; \
else \
echo "Debian" && \
apt-get update && \
apt-get install -y --no-install-recommends openjdk-17-jre && \
apt-get clean; \
fi && \
echo 'Performing Test Coverage...' && \
npm run ${testCMD} || true && \
echo 'Static Analysis...' && \
npm run sonar -- source=${scmType}; \
fi && \
echo 'NPM build...' && \
npm run build