diff --git a/Dockerfile b/Dockerfile index 8d08126b7a88..015373400758 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,105 +1,7 @@ # This Dockerfile is used for docker-based deployments to Azure for both preview environments and production # -------------------------------------------------------------------------------- -# BASE IMAGE -# -------------------------------------------------------------------------------- -FROM node:16.18.0-alpine@sha256:f16544bc93cf1a36d213c8e2efecf682e9f4df28429a629a37aaf38ecfc25cf4 as base - -# This directory is owned by the node user -ARG APP_HOME=/home/node/app - -# Make sure we don't run anything as the root user -USER node - -WORKDIR $APP_HOME - - -# --------------- -# ALL DEPS -# --------------- -FROM base as all_deps - -COPY --chown=node:node package.json package-lock.json ./ - -RUN npm ci --no-optional --registry https://registry.npmjs.org/ - -# For Next.js v12+ -# This the appropriate necessary extra for node:16-alpine -# Other options are https://www.npmjs.com/search?q=%40next%2Fswc -RUN npm i @next/swc-linux-x64-musl --no-save - - -# --------------- -# PROD DEPS -# --------------- -FROM all_deps as prod_deps - -RUN npm prune --production - - -# --------------- -# BUILDER -# --------------- -FROM all_deps as builder - -COPY stylesheets ./stylesheets -COPY pages ./pages -COPY components ./components -COPY lib ./lib -# Certain content is necessary for being able to build -COPY content/index.md ./content/index.md -COPY content/rest ./content/rest -COPY data ./data - -COPY next.config.js ./next.config.js -COPY tsconfig.json ./tsconfig.json - -RUN npm run build - -# -------------------------------------------------------------------------------- -# PREVIEW IMAGE - no translations -# -------------------------------------------------------------------------------- - -FROM base as preview - -# Copy just prod dependencies -COPY --chown=node:node --from=prod_deps $APP_HOME/node_modules $APP_HOME/node_modules - -# Copy our front-end code -COPY --chown=node:node --from=builder $APP_HOME/.next $APP_HOME/.next - -# We should always be running in production mode -ENV NODE_ENV production - -# Preferred port for server.js -ENV PORT 4000 - -ENV ENABLED_LANGUAGES "en" - -# This makes it possible to set `--build-arg BUILD_SHA=abc123` -# and it then becomes available as an environment variable in the docker run. -ARG BUILD_SHA -ENV BUILD_SHA=$BUILD_SHA - -# Copy only what's needed to run the server -COPY --chown=node:node package.json ./ -COPY --chown=node:node assets ./assets -COPY --chown=node:node content ./content -COPY --chown=node:node lib ./lib -COPY --chown=node:node middleware ./middleware -COPY --chown=node:node data ./data -COPY --chown=node:node next.config.js ./ -COPY --chown=node:node server.js ./server.js -COPY --chown=node:node start-server.js ./start-server.js - -EXPOSE $PORT - -CMD ["node", "server.js"] +# BASE # This Dockerfile is used for docker-based deployments to Azure for both preview environments and production # -------------------------------------------------------------------------------- -# PRODUCTION IMAGE - includes all translations -# -------------------------------------------------------------------------------- -FROM preview as production - -# Copy in all translations -COPY --chown=node:node translations ./translations +# BASE \ No newline at end of file diff --git a/Dockerfile.openapi_decorator b/Dockerfile.openapi_decorator index 6014681b41da..0d920faffacc 100644 --- a/Dockerfile.openapi_decorator +++ b/Dockerfile.openapi_decorator @@ -1,4 +1,4 @@ -FROM node:14-alpine +FROM node:19-alpine RUN apk add --no-cache git python make g++ @@ -11,10 +11,44 @@ USER node COPY --chown=node:node package.json /openapi-check COPY --chown=node:node package-lock.json /openapi-check ADD --chown=node:node script /openapi-check/script -ADD --chown=node:node lib /openapi-check/lib +ADD --chown=node:node lib/openapi-check/lib ADD --chown=node:node content /openapi-check/content ADD --chown=node:node data /openapi-check/data RUN npm ci -D ENTRYPOINT ["node", "/openapi-check/script/rest/openapi-check.js"] +FROM node: 19-alpine + +RUN apk add --no-cache git python make g++ + +WORKDIR /openapi-check + +RUN chown node:node /openapi-check -R + +USER node + +COPY --chown=node:node package.json /openapi-check +COPY FROM node:19-alpine + +RUN apk add --no-cache git python make g++ + +WORKDIR /openapi-check + +RUN chown node:node /openapi-check -R + +USER node + +COPY --chown=node:node package.json /openapi-check +COPY --cho FROM node:19-alpine + +RUN apk add --no-cache git python make g++ + +WORKDIR /openapi-check + +RUN chown node:node /openapi-check -R + +USER node + +COPY --chown=node:node package.json /openapi-check +COPY --cho \ No newline at end of file