mirror of
https://github.com/Ocelot-Social-Community/Ocelot-Social.git
synced 2025-12-13 07:46:06 +00:00
* feat(other): major improvement of deployment Motivation ---------- Kubernetes: * backend becomes a statefulset (exclusive volume mount) See: https://spacelift.io/blog/statefulset-vs-deployment * implement neo4j backup with job Docker: * consistent targets across all dockerfiles * remove redundant labels * remove unnecessary build args * remove obsolete networks * remove development dependencies for production Rebranding: * add image tags for local tagging and pulling * use Github's docker build workflows * use Github container registry * ONBUILD to simplify caller Dockerfiles * docker compose for branding Tooling: * same node --version as in dockerfile Docs: * missing step in README.md * refactor: remove submodules It's better to keep them all in a separate repository * improve kubernetes chart * better image tag defaults * split neo4j into its own chart (for re-use) * use application defaults where possible * optional resources for all pods * remove obsolete key/value pair from secrets * remove obsolete build argsand and add labels for neo4j enterprise * env vars for webapp * allow to define redirect domains Define a list of Domains that redirect to the domain of the project. The idea is to provide the ability to redirect eg. www.domain.tld to domain.tld * remove maintenance part regarding database * move backup job outside template folder * name the ingress * updated ingress * handle empty case of middlewares * try to default the ingress * use quote * restore todo-next-update * fix docu check * fix naming * try using prod:migrate * try using override config * copy src folder * try using base as image instead of build * fix test build * force build * comment for the problem * fix webapp tests (potentially) --------- Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
42 lines
1.6 KiB
Docker
42 lines
1.6 KiB
Docker
FROM nginx:alpine AS base
|
|
LABEL org.label-schema.name="ocelot.social:maintenance"
|
|
LABEL org.label-schema.description="Maintenance page 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"
|
|
|
|
FROM node:20.12.1-alpine3.19 AS build
|
|
ENV NODE_ENV="production"
|
|
RUN apk --no-cache add git python3 make g++ bash jq
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
COPY assets assets
|
|
COPY components/LocaleSwitch/ components/LocaleSwitch
|
|
COPY components/Dropdown.vue components/Dropdown.vue
|
|
COPY layouts/blank.vue layouts/blank.vue
|
|
COPY locales locales
|
|
COPY mixins mixins
|
|
COPY plugins/i18n.js plugins/v-tooltip.js plugins/styleguide.js plugins/
|
|
COPY static static
|
|
COPY constants constants
|
|
COPY nuxt.config.js nuxt.config.js
|
|
COPY config/ config/
|
|
COPY tools/ tools/
|
|
COPY maintenance/nginx maintenance/nginx
|
|
COPY maintenance/source maintenance/source
|
|
COPY package.json yarn.lock ./
|
|
ONBUILD COPY ./branding .
|
|
ONBUILD RUN tools/merge-locales.sh
|
|
ONBUILD RUN yarn install --production=false --frozen-lockfile --non-interactive
|
|
ONBUILD RUN cp -r maintenance/source/* ./
|
|
ONBUILD RUN yarn run generate
|
|
|
|
FROM build AS production_build
|
|
|
|
FROM base as production
|
|
COPY --from=production_build ./app/dist/ /usr/share/nginx/html/
|
|
COPY --from=production_build ./app/maintenance/nginx/custom.conf /etc/nginx/conf.d/default.conf
|