Frontend Docker build improvements (#749)
This commit is contained in:
parent
c60dc5d086
commit
72967a0381
@ -1,22 +1,19 @@
|
|||||||
|
# syntax=docker/dockerfile:1.4
|
||||||
# central place to configure the production replayweb.page loading prefix
|
# central place to configure the production replayweb.page loading prefix
|
||||||
ARG RWP_BASE_URL=https://cdn.jsdelivr.net/npm/replaywebpage/
|
ARG RWP_BASE_URL=https://cdn.jsdelivr.net/npm/replaywebpage/
|
||||||
|
|
||||||
FROM docker.io/library/node:16 as build
|
FROM docker.io/library/node:16 as build_deps
|
||||||
|
|
||||||
ARG GIT_COMMIT_HASH
|
|
||||||
ARG GIT_BRANCH_NAME
|
|
||||||
ARG VERSION
|
|
||||||
|
|
||||||
ENV GIT_COMMIT_HASH=${GIT_COMMIT_HASH} \
|
|
||||||
GIT_BRANCH_NAME=${GIT_BRANCH_NAME} \
|
|
||||||
VERSION=${VERSION}
|
|
||||||
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY yarn.lock package.json ./
|
COPY yarn.lock package.json ./
|
||||||
RUN yarn --frozen-lockfile --network-timeout 1000000
|
# Uses `yarn cache clean` to let Docker cache layer instead
|
||||||
|
# of including yarn cache in the build image
|
||||||
|
RUN yarn --production --frozen-lockfile --network-timeout 1000000 && \
|
||||||
|
yarn cache clean
|
||||||
|
|
||||||
COPY lit-localize.json \
|
FROM build_deps as build
|
||||||
|
|
||||||
|
COPY --link lit-localize.json \
|
||||||
postcss.config.js \
|
postcss.config.js \
|
||||||
tailwind.config.js \
|
tailwind.config.js \
|
||||||
tsconfig.json \
|
tsconfig.json \
|
||||||
@ -25,20 +22,33 @@ COPY lit-localize.json \
|
|||||||
index.d.ts \
|
index.d.ts \
|
||||||
./
|
./
|
||||||
|
|
||||||
COPY src ./src/
|
COPY --link src ./src/
|
||||||
|
|
||||||
RUN yarn build
|
# Build variables used to show current app version
|
||||||
|
# in the UI. Note that this will invalidate all
|
||||||
|
# subsequent RUN steps.
|
||||||
|
ARG GIT_COMMIT_HASH
|
||||||
|
ARG GIT_BRANCH_NAME
|
||||||
|
ARG VERSION
|
||||||
|
|
||||||
|
ENV GIT_COMMIT_HASH=${GIT_COMMIT_HASH} \
|
||||||
|
GIT_BRANCH_NAME=${GIT_BRANCH_NAME} \
|
||||||
|
VERSION=${VERSION}
|
||||||
|
|
||||||
|
# Prevent Docker caching node_modules
|
||||||
|
RUN yarn build && \
|
||||||
|
rm -rf ./node_modules
|
||||||
|
|
||||||
FROM docker.io/library/nginx:1.23.2
|
FROM docker.io/library/nginx:1.23.2
|
||||||
|
|
||||||
ARG RWP_BASE_URL
|
ARG RWP_BASE_URL
|
||||||
ENV RWP_BASE_URL=${RWP_BASE_URL}
|
ENV RWP_BASE_URL=${RWP_BASE_URL}
|
||||||
|
|
||||||
COPY --from=build /app/dist /usr/share/nginx/html
|
COPY --link --from=build /app/dist /usr/share/nginx/html
|
||||||
|
|
||||||
#COPY ./nginx.conf /etc/nginx/nginx.conf
|
#COPY ./nginx.conf /etc/nginx/nginx.conf
|
||||||
COPY ./frontend.conf.template /etc/nginx/templates/
|
COPY --link ./frontend.conf.template /etc/nginx/templates/
|
||||||
COPY ./minio.conf /etc/nginx/includes/
|
COPY --link ./minio.conf /etc/nginx/includes/
|
||||||
|
|
||||||
ADD ./00-browsertrix-nginx-init.sh ./docker-entrypoint.d/
|
ADD --link ./00-browsertrix-nginx-init.sh ./docker-entrypoint.d/
|
||||||
|
|
||||||
|
@ -7,21 +7,52 @@
|
|||||||
"@cheap-glitch/mi-cron": "^1.0.1",
|
"@cheap-glitch/mi-cron": "^1.0.1",
|
||||||
"@lit/localize": "^0.11.4",
|
"@lit/localize": "^0.11.4",
|
||||||
"@novnc/novnc": "^1.4.0-beta",
|
"@novnc/novnc": "^1.4.0-beta",
|
||||||
|
"@rollup/plugin-commonjs": "^18.0.0",
|
||||||
"@shoelace-style/shoelace": "2.0.0-beta.85",
|
"@shoelace-style/shoelace": "2.0.0-beta.85",
|
||||||
|
"@types/color": "^3.0.2",
|
||||||
|
"@types/lodash": "^4.14.178",
|
||||||
|
"@types/sinon": "^10.0.6",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||||
|
"@typescript-eslint/parser": "^5.4.0",
|
||||||
"@xstate/fsm": "^1.6.2",
|
"@xstate/fsm": "^1.6.2",
|
||||||
|
"autoprefixer": "^10.4.2",
|
||||||
"axios": "^0.22.0",
|
"axios": "^0.22.0",
|
||||||
"broadcastchannel-polyfill": "^1.0.1",
|
"broadcastchannel-polyfill": "^1.0.1",
|
||||||
"color": "^4.0.1",
|
"color": "^4.0.1",
|
||||||
|
"copy-webpack-plugin": "^9.1.0",
|
||||||
|
"css-loader": "^6.3.0",
|
||||||
|
"del-cli": "^4.0.1",
|
||||||
|
"dotenv": "^10.0.0",
|
||||||
|
"dotenv-webpack": "^7.0.3",
|
||||||
|
"eslint": "^8.2.0",
|
||||||
|
"eslint-config-prettier": "^8.3.0",
|
||||||
|
"eslint-plugin-lit": "^1.6.1",
|
||||||
|
"eslint-plugin-wc": "^1.3.2",
|
||||||
|
"eslint-webpack-plugin": "^3.1.1",
|
||||||
"fuse.js": "^6.5.3",
|
"fuse.js": "^6.5.3",
|
||||||
|
"glob": "^8.1.0",
|
||||||
|
"html-loader": "^3.0.1",
|
||||||
|
"html-webpack-plugin": "^5.5.0",
|
||||||
"immutable": "^4.1.0",
|
"immutable": "^4.1.0",
|
||||||
"iso-639-1": "^2.1.15",
|
"iso-639-1": "^2.1.15",
|
||||||
"lit": "^2.4.1",
|
"lit": "^2.4.1",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
|
"node-fetch": "^3.1.0",
|
||||||
|
"postcss": "^8.4.5",
|
||||||
|
"postcss-loader": "^6.1.1",
|
||||||
|
"prettier": "^2.4.1",
|
||||||
"pretty-ms": "^7.0.1",
|
"pretty-ms": "^7.0.1",
|
||||||
"query-string": "^8.1.0",
|
"query-string": "^8.1.0",
|
||||||
"regex-colorize": "^0.0.3",
|
"regex-colorize": "^0.0.3",
|
||||||
|
"style-loader": "^3.3.0",
|
||||||
"tailwindcss": "^3.2.7",
|
"tailwindcss": "^3.2.7",
|
||||||
|
"ts-loader": "^9.2.6",
|
||||||
|
"typescript": "^4.5.2",
|
||||||
|
"update-dotenv": "^1.1.1",
|
||||||
"url-pattern": "^1.0.3",
|
"url-pattern": "^1.0.3",
|
||||||
|
"webpack": "^5.56.0",
|
||||||
|
"webpack-cli": "^4.8.0",
|
||||||
|
"webpack-merge": "^5.8.0",
|
||||||
"yaml": "^2.0.0-11"
|
"yaml": "^2.0.0-11"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -43,47 +74,16 @@
|
|||||||
"@lit/localize-tools": "^0.6.5",
|
"@lit/localize-tools": "^0.6.5",
|
||||||
"@open-wc/testing": "^3.1.7",
|
"@open-wc/testing": "^3.1.7",
|
||||||
"@playwright/test": "1.32.1",
|
"@playwright/test": "1.32.1",
|
||||||
"@rollup/plugin-commonjs": "^18.0.0",
|
|
||||||
"@types/color": "^3.0.2",
|
|
||||||
"@types/lodash": "^4.14.178",
|
|
||||||
"@types/sinon": "^10.0.6",
|
|
||||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
|
||||||
"@typescript-eslint/parser": "^5.4.0",
|
|
||||||
"@web/dev-server-esbuild": "^0.3.3",
|
"@web/dev-server-esbuild": "^0.3.3",
|
||||||
"@web/dev-server-import-maps": "^0.0.6",
|
"@web/dev-server-import-maps": "^0.0.6",
|
||||||
"@web/dev-server-rollup": "^0.3.21",
|
"@web/dev-server-rollup": "^0.3.21",
|
||||||
"@web/test-runner": "^0.13.22",
|
"@web/test-runner": "^0.13.22",
|
||||||
"@web/test-runner-playwright": "^0.8.8",
|
"@web/test-runner-playwright": "^0.8.8",
|
||||||
"autoprefixer": "^10.4.2",
|
|
||||||
"chromium": "^3.0.3",
|
"chromium": "^3.0.3",
|
||||||
"copy-webpack-plugin": "^9.1.0",
|
|
||||||
"css-loader": "^6.3.0",
|
|
||||||
"del-cli": "^4.0.1",
|
|
||||||
"dotenv": "^10.0.0",
|
|
||||||
"dotenv-webpack": "^7.0.3",
|
|
||||||
"eslint": "^8.2.0",
|
|
||||||
"eslint-config-prettier": "^8.3.0",
|
|
||||||
"eslint-plugin-lit": "^1.6.1",
|
|
||||||
"eslint-plugin-wc": "^1.3.2",
|
|
||||||
"eslint-webpack-plugin": "^3.1.1",
|
|
||||||
"glob": "^8.1.0",
|
|
||||||
"html-loader": "^3.0.1",
|
|
||||||
"html-webpack-plugin": "^5.5.0",
|
|
||||||
"husky": "^8.0.3",
|
"husky": "^8.0.3",
|
||||||
"lint-staged": "^13.1.0",
|
"lint-staged": "^13.1.0",
|
||||||
"node-fetch": "^3.1.0",
|
|
||||||
"postcss": "^8.4.5",
|
|
||||||
"postcss-loader": "^6.1.1",
|
|
||||||
"prettier": "^2.4.1",
|
|
||||||
"sinon": "^12.0.1",
|
"sinon": "^12.0.1",
|
||||||
"style-loader": "^3.3.0",
|
"webpack-dev-server": "^4.3.0"
|
||||||
"ts-loader": "^9.2.6",
|
|
||||||
"typescript": "^4.5.2",
|
|
||||||
"update-dotenv": "^1.1.1",
|
|
||||||
"webpack": "^5.56.0",
|
|
||||||
"webpack-cli": "^4.8.0",
|
|
||||||
"webpack-dev-server": "^4.3.0",
|
|
||||||
"webpack-merge": "^5.8.0"
|
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"parser": "@typescript-eslint/parser",
|
"parser": "@typescript-eslint/parser",
|
||||||
|
@ -81,8 +81,11 @@ const main = {
|
|||||||
{
|
{
|
||||||
test: /\.ts$/,
|
test: /\.ts$/,
|
||||||
include: path.resolve(__dirname, "src"),
|
include: path.resolve(__dirname, "src"),
|
||||||
use: "ts-loader",
|
loader: "ts-loader",
|
||||||
exclude: /node_modules/,
|
exclude: /node_modules/,
|
||||||
|
options: {
|
||||||
|
onlyCompileBundledFiles: true,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: /\.css$/,
|
test: /\.css$/,
|
||||||
@ -113,7 +116,7 @@ const main = {
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
new webpack.optimize.LimitChunkCountPlugin({
|
new webpack.optimize.LimitChunkCountPlugin({
|
||||||
maxChunks: 12
|
maxChunks: 12,
|
||||||
}),
|
}),
|
||||||
|
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
|
@ -89,37 +89,6 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@floating-ui/core" "^1.2.3"
|
"@floating-ui/core" "^1.2.3"
|
||||||
|
|
||||||
"@formatjs/ecma402-abstract@1.11.4":
|
|
||||||
version "1.11.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda"
|
|
||||||
integrity sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==
|
|
||||||
dependencies:
|
|
||||||
"@formatjs/intl-localematcher" "0.2.25"
|
|
||||||
tslib "^2.1.0"
|
|
||||||
|
|
||||||
"@formatjs/intl-displaynames@^5.2.5":
|
|
||||||
version "5.4.3"
|
|
||||||
resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-5.4.3.tgz#e468586694350c722c7efab1a31fcde68aeaed8b"
|
|
||||||
integrity sha512-4r12A3mS5dp5hnSaQCWBuBNfi9Amgx2dzhU4lTFfhSxgb5DOAiAbMpg6+7gpWZgl4ahsj3l2r/iHIjdmdXOE2Q==
|
|
||||||
dependencies:
|
|
||||||
"@formatjs/ecma402-abstract" "1.11.4"
|
|
||||||
"@formatjs/intl-localematcher" "0.2.25"
|
|
||||||
tslib "^2.1.0"
|
|
||||||
|
|
||||||
"@formatjs/intl-getcanonicallocales@^1.8.0":
|
|
||||||
version "1.9.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.9.2.tgz#5aab5f6ac2d923933538085eec20a19c393b6ebf"
|
|
||||||
integrity sha512-69WTStIJI2ikErOU1Il4NQKLVV8f2x6awr7+/dZz0uihuI7uQRcZtI6k/BBt4EtYaEl6w65YjUF93VuE015C0w==
|
|
||||||
dependencies:
|
|
||||||
tslib "^2.1.0"
|
|
||||||
|
|
||||||
"@formatjs/intl-localematcher@0.2.25":
|
|
||||||
version "0.2.25"
|
|
||||||
resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz#60892fe1b271ec35ba07a2eb018a2dd7bca6ea3a"
|
|
||||||
integrity sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==
|
|
||||||
dependencies:
|
|
||||||
tslib "^2.1.0"
|
|
||||||
|
|
||||||
"@humanwhocodes/config-array@^0.11.8":
|
"@humanwhocodes/config-array@^0.11.8":
|
||||||
version "0.11.8"
|
version "0.11.8"
|
||||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
|
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
|
||||||
@ -4668,22 +4637,17 @@ pkg-dir@4.2.0, pkg-dir@^4.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
find-up "^4.0.0"
|
find-up "^4.0.0"
|
||||||
|
|
||||||
playwright-core@1.31.1:
|
|
||||||
version "1.31.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.31.1.tgz#4deeebbb8fb73b512593fe24bea206d8fd85ff7f"
|
|
||||||
integrity sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==
|
|
||||||
|
|
||||||
playwright-core@1.32.1:
|
playwright-core@1.32.1:
|
||||||
version "1.32.1"
|
version "1.32.1"
|
||||||
resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.32.1.tgz#5a10c32403323b07d75ea428ebeed866a80b76a1"
|
resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.32.1.tgz#5a10c32403323b07d75ea428ebeed866a80b76a1"
|
||||||
integrity sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==
|
integrity sha512-KZYUQC10mXD2Am1rGlidaalNGYk3LU1vZqqNk0gT4XPty1jOqgup8KDP8l2CUlqoNKhXM5IfGjWgW37xvGllBA==
|
||||||
|
|
||||||
playwright@1.31.1, playwright@^1.22.2:
|
playwright@1.32.1, playwright@^1.22.2:
|
||||||
version "1.31.1"
|
version "1.32.1"
|
||||||
resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.31.1.tgz#66164cdc1506bc883c7a98b44714dfea50b22d50"
|
resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.32.1.tgz#c48195850740fbdbd7702f37e5a891b13259f689"
|
||||||
integrity sha512-zKJabsIA2rvOwJ12lGTqWv4HVJzlfw2JtUvO4hAr7J8UXQZ1qEPpX20E1vcz/9fotnTkwgqp3CVdIBwptBN3Fg==
|
integrity sha512-GnEizysWMvoqHC3I9l8+4/ZxeLwLNdJJG76xdKGxzOcIZDcw5RSk/FKrFb5CuA+zcLpjIM2p9eR9Z4CuUDkWXg==
|
||||||
dependencies:
|
dependencies:
|
||||||
playwright-core "1.31.1"
|
playwright-core "1.32.1"
|
||||||
|
|
||||||
portfinder@^1.0.28, portfinder@^1.0.32:
|
portfinder@^1.0.28, portfinder@^1.0.32:
|
||||||
version "1.0.32"
|
version "1.0.32"
|
||||||
|
Loading…
Reference in New Issue
Block a user