diff --git a/.dockerignore b/.dockerignore index 1168d108..0ec9738d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,6 +2,8 @@ node_modules out dist +.husky +.next .idea .history .vscode diff --git a/.drone.yml b/.drone.yml index d8cf63c1..695a9504 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ steps: image: plugins/docker when: branch: - - master + - never environment: NEXT_PUBLIC_API_HOST: https://vault48.org/api/ NEXT_PUBLIC_REMOTE_CURRENT: https://vault48.org/static/ diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml index 25d067df..a6a1fbd8 100644 --- a/.forgejo/workflows/build.yml +++ b/.forgejo/workflows/build.yml @@ -2,7 +2,7 @@ name: Build & Publish on: push: - branches: [master] + branches: [standalone] jobs: push_to_registry: @@ -35,7 +35,7 @@ jobs: uses: docker/build-push-action@v6 with: context: . - file: ./docker/nextjs/Dockerfile + file: ./docker/nextjs-standalone/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/docker/nextjs-standalone/Dockerfile b/docker/nextjs-standalone/Dockerfile new file mode 100644 index 00000000..14687b9e --- /dev/null +++ b/docker/nextjs-standalone/Dockerfile @@ -0,0 +1,50 @@ +# As written here: https://dev.to/leduc1901/reduce-docker-image-size-for-your-nextjs-app-5911 + +# Base ─────────────────────────────────────────────────────────────────────── +FROM node:14-alpine as base + +WORKDIR /opt/app + +ENV PATH /opt/app/node_modules/.bin:$PATH + +# Build ────────────────────────────────────────────────────────────────────── +FROM base as builder + +ARG NEXT_PUBLIC_API_HOST +ARG NEXT_PUBLIC_REMOTE_CURRENT +ARG NEXT_PUBLIC_PUBLIC_HOST +ARG NEXT_PUBLIC_BOT_USERNAME + +ENV NEXT_PUBLIC_API_HOST $NEXT_PUBLIC_API_HOST +ENV NEXT_PUBLIC_REMOTE_CURRENT $NEXT_PUBLIC_REMOTE_CURRENT +ENV NEXT_PUBLIC_PUBLIC_HOST $NEXT_PUBLIC_PUBLIC_HOST +ENV NEXT_PUBLIC_BOT_USERNAME $NEXT_PUBLIC_BOT_USERNAME + +# ENV NEXT_PUBLIC_API_HOST https://vault48.org/api/ +# ENV NEXT_PUBLIC_REMOTE_CURRENT https://vault48.org/static/ +# ENV NEXT_PUBLIC_PUBLIC_HOST https://vault48.org/ +# ENV NEXT_PUBLIC_BOT_USERNAME vault48bot + +COPY package.json . +COPY yarn.lock . + +RUN true \ + && yarn install --frozen-lockfile\ + && true + +COPY . /opt/app + +# pkg packs nodejs with given script, so we don't need it in next section +RUN yarn next build + +FROM node:14-alpine as runner + +WORKDIR /opt/app + +COPY --from=builder /opt/app/public ./public +COPY --from=builder /opt/app/.next/standalone . +COPY --from=builder /opt/app/.next/static ./.next/static + +EXPOSE 3000 + +ENTRYPOINT ["node", "server.js"] \ No newline at end of file diff --git a/next.config.js b/next.config.js index 64e56747..c95c6aa1 100644 --- a/next.config.js +++ b/next.config.js @@ -9,6 +9,7 @@ const withTM = require('next-transpile-modules')([ module.exports = withBundleAnalyzer( withTM({ + output: 'standalone', /** rewrite old-style node paths */ async rewrites() { return [ diff --git a/src/containers/dialogs/PhotoSwipe/index.tsx b/src/containers/dialogs/PhotoSwipe/index.tsx index f5d4098c..0872b2cc 100644 --- a/src/containers/dialogs/PhotoSwipe/index.tsx +++ b/src/containers/dialogs/PhotoSwipe/index.tsx @@ -58,6 +58,7 @@ const PhotoSwipe = observer(({ index, items }: Props) => { return () => { pswp.current?.off('close', hideModal); + // eslint-disable-next-line react-hooks/exhaustive-deps pswp.current?.destroy(); }; }, [hideModal, items, index, isTablet]); diff --git a/yarn.lock b/yarn.lock index 30bb1ef1..464da01d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -803,9 +803,9 @@ callsites@^3.0.0: integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== caniuse-lite@^1.0.30001332: - version "1.0.30001564" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz" - integrity sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg== + version "1.0.30001707" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz" + integrity sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw== chalk@^2.0.0: version "2.4.2"