Ocelot-Social/webapp/Dockerfile
mahula b61fd597ec
refactor(webapp): adapt webapp docker build stages to match e2e testing requirements (#8651)
* refactor: change webapp docker build stages to match e2e testing requirements

* refactor: remove build parameter from final docker compose steptin e2e test workflow

* Revert "refactor: remove build parameter from final docker compose steptin e2e test workflow"

This reverts commit 63461874ba389f6fcdd1f57b45d7f531088cd10a.

* e2e: update backend env template for e2e testing

* e2e: update e2e testing workflow to recent changes in backend building and config

* e2e: update e2e testing workflow add missing env copy

* e2e: update e2e testing workflow add missing env copy

* e2e: update e2e testing workflow add missing env copy
2025-06-09 15:46:12 +02:00

63 lines
2.2 KiB
Docker

FROM node:20.12.1-alpine AS base
LABEL org.label-schema.name="ocelot.social:webapp"
LABEL org.label-schema.description="Web Frontend of the Social Network Software ocelot.social"
LABEL org.label-schema.usage="https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md"
LABEL org.label-schema.url="https://ocelot.social"
LABEL org.label-schema.vcs-url="https://github.com/Ocelot-Social-Community/Ocelot-Social/tree/master/webapp"
LABEL org.label-schema.vendor="ocelot.social Community"
LABEL org.label-schema.schema-version="1.0"
LABEL maintainer="devops@ocelot.social"
ENV NODE_ENV="production"
ENV PORT="3000"
EXPOSE ${PORT}
RUN apk --no-cache add git python3 make g++ bash jq
RUN mkdir -p /app
WORKDIR /app
CMD ["/bin/bash", "-c", "yarn run start"]
FROM base AS development
CMD ["/bin/bash", "-c", "yarn install && yarn run dev"]
FROM base AS build
COPY . .
ONBUILD COPY ./branding .
ONBUILD RUN tools/merge-locales.sh
ONBUILD RUN yarn install --production=false --frozen-lockfile --non-interactive
ONBUILD RUN yarn run build
ONBUILD RUN mkdir /build
ONBUILD RUN cp -r ./.nuxt /build
ONBUILD RUN cp -r ./nuxt.config.js /build
# Copy static files
# TODO - this seems not be needed anymore for the new rebranding
# TODO - this should be one Folder containign all stuff needed to be copied
ONBUILD RUN cp -r ./config/ /build
ONBUILD RUN cp -r ./constants /build
ONBUILD RUN cp -r ./static /build
ONBUILD RUN cp -r ./locales /build
ONBUILD RUN cp -r ./package.json ./yarn.lock /build
ONBUILD RUN cd /build && yarn install --production=true --frozen-lockfile --non-interactive
FROM base AS test_build
ENV NODE_ENV=test
COPY . .
RUN tools/merge-locales.sh
RUN yarn install --production=false --frozen-lockfile --non-interactive
RUN yarn run build
RUN mkdir /build
RUN cp -r ./.nuxt /build
RUN cp -r ./nuxt.config.js /build
RUN cp -r ./config/ /build
RUN cp -r ./constants /build
RUN cp -r ./static /build
RUN cp -r ./locales /build
RUN cp -r ./package.json ./yarn.lock /build
RUN cd /build && yarn install --frozen-lockfile --non-interactive
FROM test_build AS test
CMD ["/bin/bash", "-c", "yarn run dev"]
FROM build AS production_build
FROM base AS production
COPY --from=production_build /build .