diff --git a/Dockerfile b/Dockerfile index ddc612660..92f0816df 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,7 @@ -FROM nginx:1.23.0 - -RUN apt-get update && apt-get upgrade -y - -RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - -RUN apt-get install -y nodejs +FROM node:18 AS build -RUN \ - apt-get install -y \ - libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 \ - libxss1 libasound2 libxtst6 xauth xvfb g++ make +ARG SHEET_ID +ARG SHEET_NAME WORKDIR /src/build-your-own-radar COPY package.json ./ @@ -17,7 +10,10 @@ RUN npm ci COPY . ./ -# Override parent node image's entrypoint script (/usr/local/bin/docker-entrypoint.sh), -# which tries to run CMD as a node command -ENTRYPOINT [] -CMD ["./build_and_start_nginx.sh"] +RUN npm test && npm run build:prod + +FROM nginx:1.23.0 + +COPY --from=build /src/build-your-own-radar/dist /opt/build-your-own-radar +COPY default.template /etc/nginx/conf.d/default.conf +CMD nginx -g 'daemon off;' diff --git a/src/site.js b/src/site.js index ab0dde48c..a6d38ab91 100644 --- a/src/site.js +++ b/src/site.js @@ -6,3 +6,14 @@ require('./analytics.js') const Factory = require('./util/factory') Factory().build() + +if (process.env.SHEET_ID) { + Factory().build(process.env.SHEET_ID, process.env.SHEET_NAME) +} else { + const QueryParams = require('./util/queryParamProcessor') + + var queryString = window.location.href.match(/sheetId(.*)/) + var queryParams = queryString ? QueryParams(queryString[0]) : {} + + Factory().build(queryParams.sheetId, queryParams.sheetName) +} diff --git a/src/util/factory.js b/src/util/factory.js index 5cad3b873..7b2a3f40a 100644 --- a/src/util/factory.js +++ b/src/util/factory.js @@ -248,7 +248,7 @@ const CSVDocument = function (url) { return self } -const JSONFile = function (url) { +const JSONFile = function (url, title) { var self = {} self.build = function () { @@ -284,12 +284,6 @@ const JSONFile = function (url) { return self } -const DomainName = function (url) { - var search = /.+:\/\/([^\\/]+)/ - var match = search.exec(decodeURIComponent(url.replace(/\+/g, ' '))) - return match == null ? null : match[1] -} - const FileName = function (url) { var search = /([^\\/]+)$/ var match = search.exec(decodeURIComponent(url.replace(/\+/g, ' '))) diff --git a/webpack.common.js b/webpack.common.js index 004d862ea..cc2cc83ae 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -15,6 +15,7 @@ if (env) { } const common = ['./src/common.js'] +const main = ['./src/site.js'] const ASSET_PATH = process.env.ASSET_PATH || '/' @@ -33,13 +34,16 @@ const plugins = [ 'process.env.RINGS': JSON.stringify(process.env.RINGS), 'process.env.QUADRANTS': JSON.stringify(process.env.QUADRANTS), 'process.env.ADOBE_LAUNCH_SCRIPT_URL': JSON.stringify(process.env.ADOBE_LAUNCH_SCRIPT_URL), + 'process.env.SHEET_ID': JSON.stringify(process.env.SHEET_ID), + 'process.env.SHEET_NAME': JSON.stringify(process.env.SHEET_NAME) }), ] module.exports = { context: __dirname, entry: { - common: common, + common, + main, }, output: { path: buildPath,