Browse Source

Merge branch 'master' into feat/6450

hakumizuki 4 years ago
parent
commit
409fa7dbf4

+ 21 - 16
packages/app/docker/Dockerfile

@@ -18,6 +18,7 @@ COPY ./yarn.lock .
 COPY ./lerna.json .
 COPY ./packages/app/package.json packages/app/
 COPY ./packages/slack/package.json packages/slack/
+COPY ./packages/plugin-pukiwiki-like-linker/package.json packages/plugin-pukiwiki-like-linker/
 
 # setup
 RUN yarn config set network-timeout 300000
@@ -26,7 +27,8 @@ RUN npx lerna bootstrap
 # make artifacts
 RUN tar cf node_modules.tar node_modules \
   packages/app/node_modules \
-  packages/slack/node_modules
+  packages/slack/node_modules \
+  packages/plugin-pukiwiki-like-linker/node_modules
 
 
 
@@ -41,7 +43,8 @@ RUN yarn install --production
 # make artifacts
 RUN tar cf node_modules.tar node_modules \
   packages/app/node_modules \
-  packages/slack/node_modules
+  packages/slack/node_modules \
+  packages/plugin-pukiwiki-like-linker/node_modules
 
 
 
@@ -88,16 +91,10 @@ COPY ./package.json ./
 COPY ./yarn.lock ./
 COPY ./lerna.json ./
 COPY ./tsconfig.base.json ./
-COPY ./babel.config.js ./
-COPY ./bin ./bin
-COPY ./config ./config
-COPY ./public ./public
-COPY ./resource ./resource
-COPY ./src ./src
-COPY ./tmp ./tmp
 # copy all related packages
 COPY packages/slack packages/slack
 COPY packages/app packages/app
+COPY packages/plugin-pukiwiki-like-linker packages/plugin-pukiwiki-like-linker
 
 # build
 RUN yarn lerna run build
@@ -106,12 +103,16 @@ RUN yarn lerna run build
 RUN tar cf packages.tar \
   package.json \
   yarn.lock \
-  config \
-  public \
-  resource \
-  src \
-  tmp \
+  tsconfig.base.json \
   packages/app/package.json \
+  packages/app/config \
+  packages/app/dist \
+  packages/app/public \
+  packages/app/resource \
+  packages/app/tmp \
+  packages/app/.env.production \
+  packages/app/tsconfig.base.json \
+  packages/app/tsconfig.json \
   packages/slack/package.json \
   packages/slack/dist
 
@@ -124,6 +125,8 @@ RUN tar cf packages.tar \
 FROM node:14-slim
 LABEL maintainer Yuki Takei <yuki@weseek.co.jp>
 
+ENV NODE_ENV production
+
 ENV appDir /opt/growi
 
 # Add gosu
@@ -154,12 +157,14 @@ RUN rm node_modules.tar packages.tar
 
 USER root
 
-COPY docker/docker-entrypoint.sh /
+COPY packages/app/docker/docker-entrypoint.sh /
 RUN chmod 700 /docker-entrypoint.sh
 RUN chown node:node ${appDir}
 
+WORKDIR ${appDir}/packages/app
+
 VOLUME /data
 EXPOSE 3000
 
 ENTRYPOINT ["/tini", "-e", "143", "--", "/docker-entrypoint.sh"]
-CMD ["yarn", "server:prod"]
+CMD ["node", "-r", "dotenv-flow/config", "--expose_gc", "dist/server/app.js"]

+ 3 - 3
packages/app/docker/docker-entrypoint.sh

@@ -4,11 +4,11 @@ set -e
 
 # Support `FILE_UPLOAD=local`
 mkdir -p /data/uploads
-if [ ! -e "$appDir/public/uploads" ]; then
-  ln -s /data/uploads $appDir/public/uploads
+if [ ! -e "./public/uploads" ]; then
+  ln -s /data/uploads ./public/uploads
 fi
 
 chown -R node:node /data/uploads
-chown -h node:node $appDir/public/uploads
+chown -h node:node ./public/uploads
 
 gosu node $@

+ 3 - 2
packages/app/package.json

@@ -8,8 +8,9 @@
     "build": "run-p build:*",
     "build:client": "cross-env NODE_ENV=production webpack --config config/webpack.prod.js --profile --bail",
     "build:server": "cross-env NODE_ENV=production tsc -p tsconfig.build.server.json && tsc-alias -p tsconfig.build.server.json",
-    "prebuild": "run-p resources:*",
-    "postbuild": "npx shx mv transpiled/src dist && npx shx rm -r transpiled",
+    "clean": "npx shx rm -rf dist transpiled",
+    "prebuild": "run-p clean resources:*",
+    "postbuild": "npx shx mv transpiled/src dist && npx shx rm -rf transpiled",
     "server": "cross-env NODE_ENV=production node -r dotenv-flow/config --expose_gc dist/server/app.js",
     "server:ci": "yarn server --ci",
     "preserver": "yarn migrate",

+ 3 - 3
packages/app/src/components/ShareLink/ShareLinkForm.jsx

@@ -2,7 +2,7 @@ import React from 'react';
 import PropTypes from 'prop-types';
 
 import { withTranslation } from 'react-i18next';
-import { dateFnsFormat, parse } from 'date-fns';
+import { format, parse } from 'date-fns';
 
 import { isInteger } from 'core-js/fn/number';
 import { withUnstatedContainers } from '../UnstatedUtils';
@@ -20,8 +20,8 @@ class ShareLinkForm extends React.Component {
       expirationType: 'unlimited',
       numberOfDays: '7',
       description: '',
-      customExpirationDate: dateFnsFormat(new Date(), 'yyyy-MM-dd'),
-      customExpirationTime: dateFnsFormat(new Date(), 'HH:mm'),
+      customExpirationDate: format(new Date(), 'yyyy-MM-dd'),
+      customExpirationTime: format(new Date(), 'HH:mm'),
     };
 
     this.handleChangeExpirationType = this.handleChangeExpirationType.bind(this);

+ 2 - 1
packages/app/src/server/routes/apiv3/admin-home.js

@@ -1,6 +1,7 @@
+import ConfigLoader from '../../service/config-loader';
+
 const express = require('express');
 const PluginUtils = require('../../plugins/plugin-utils');
-const ConfigLoader = require('../../service/config-loader');
 
 const pluginUtils = new PluginUtils();
 

+ 3 - 2
packages/app/src/server/service/export.js

@@ -1,6 +1,8 @@
 import loggerFactory from '~/utils/logger';
 import { toArrayIfNot } from '~/utils/array-utils';
 
+import ConfigLoader from './config-loader';
+
 const logger = loggerFactory('growi:services:ExportService'); // eslint-disable-line no-unused-vars
 
 const fs = require('fs');
@@ -9,7 +11,6 @@ const mongoose = require('mongoose');
 const { Transform } = require('stream');
 const streamToPromise = require('stream-to-promise');
 const archiver = require('archiver');
-const ConfigLoader = require('../service/config-loader');
 
 const CollectionProgressingStatus = require('../models/vo/collection-progressing-status');
 
@@ -91,7 +92,7 @@ class ExportService {
       url: this.appService.getSiteUrl(),
       passwordSeed,
       exportedAt: new Date(),
-      envVars: ConfigLoader.getEnvVarsForDisplay(),
+      envVars: await ConfigLoader.getEnvVarsForDisplay(),
     };
 
     writeStream.write(JSON.stringify(metaData));