Created
July 18, 2024 09:19
-
-
Save Eventyret/2565c38bc45cd5747fc24b655107f28c to your computer and use it in GitHub Desktop.
Dockerfile used with strapi-dockerize-tool
This file contains hidden or 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
# Creating multi-stage build for production | |
FROM node:20-alpine as build | |
RUN apk update && apk add --no-cache build-base gcc autoconf automake zlib-dev libpng-dev vips-dev > /dev/null 2>&1 | |
ARG NODE_ENV=production | |
ENV NODE_ENV=${NODE_ENV} | |
WORKDIR /opt/ | |
{%- if packageManager == "yarn" %} | |
COPY package.json yarn.lock ./ | |
RUN yarn config set network-timeout 600000 -g && yarn install --production | |
{%- else %} | |
COPY package.json package-lock.json ./ | |
RUN npm config set fetch-retry-maxtimeout 600000 -g && npm install --only=production | |
{%- endif %} | |
ENV PATH /opt/node_modules/.bin:$PATH | |
WORKDIR /opt/app | |
COPY . . | |
{%- if packageManager == "yarn" %} | |
RUN yarn build | |
{%- else %} | |
RUN npm run build | |
{%- endif %} | |
# Creating final production image | |
FROM node:20-alpine | |
RUN apk add --no-cache vips-dev | |
ARG NODE_ENV=production | |
ENV NODE_ENV=${NODE_ENV} | |
WORKDIR /opt/ | |
COPY --from=build /opt/node_modules ./node_modules | |
WORKDIR /opt/app | |
COPY --from=build /opt/app ./ | |
ENV PATH /opt/node_modules/.bin:$PATH | |
RUN chown -R node:node /opt/app | |
USER node | |
EXPOSE 1337 | |
{%- if packageManager == "yarn" %} | |
CMD ["yarn", "start"] | |
{%- else %} | |
CMD ["npm", "run", "start"] | |
{%- endif %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment