tweaking for nginx, cyberchef, elasticvue

create builder for cyberchef and elasticvue based on respective masters
builders will build webapps and copy output to nginx html folder as tgz
some tweaking for elasticvue to properly load original favicon
with cyberchef now run as nginx webapp we gain another 40MB of RAM
while webapps will be built on AMD64 all final docker images can now be built as multi arch images for AMD64 and ARM64
This commit is contained in:
t3chn0m4g3
2022-01-30 00:48:10 +00:00
parent a51744988f
commit 72289e07d6
19 changed files with 56 additions and 109 deletions

View File

@ -0,0 +1,17 @@
FROM node:10.24.1-alpine3.11 as builder
#
# Prep and build Cyberchef
RUN apk -U --no-cache add git && \
chown -R node:node /srv && \
npm install -g grunt-cli
WORKDIR /srv
USER node
RUN git clone https://github.com/gchq/cyberchef -b v9.32.3 . && \
NODE_OPTIONS=--max_old_space_size=2048 && \
npm install && \
grunt prod && \
cd build/prod && \
tar cvfz cyberchef.tgz *
#
FROM scratch AS exporter
COPY --from=builder /srv/build/prod/cyberchef.tgz /

View File

@ -0,0 +1,3 @@
#!/bin/bash
# Needs buildx to build. Run tpotce/bin/setup-builder.sh first
docker buildx build --output ../../dist/html/cyberchef/ .

View File

@ -0,0 +1,21 @@
FROM node:14.18-alpine AS builder
#
# Prep and build Elasticvue
RUN apk -U --no-cache add git && \
git clone https://github.com/cars10/elasticvue /opt/src && \
# We need to adjust consts.js so the user has connection suggestion for reverse proxied ES
sed -i "s#export const DEFAULT_HOST = 'http://localhost:9200'#export const DEFAULT_HOST = window.location.origin + '/es'#g" /opt/src/src/consts.js && \
sed -i 's#href="/images/logo/favicon.ico"#href="images/logo/favicon.ico"#g' /opt/src/public/index.html && \
mkdir /opt/app && \
cd /opt/app && \
cp /opt/src/package.json . && \
cp /opt/src/yarn.lock . && \
yarn install && \
cp -R /opt/src/* . && \
# We need to set this ENV so we can run Elasticvue in its own location rather than /
VUE_APP_PUBLIC_PATH=/elasticvue/ yarn build && \
cd dist && \
tar cvfz esvue.tgz *
#
FROM scratch AS exporter
COPY --from=builder /opt/app/dist/esvue.tgz /

View File

@ -0,0 +1,3 @@
#!/bin/bash
# Needs buildx to build. Run tpotce/bin/setup-builder.sh first
docker buildx build --output ../../dist/html/esvue/ .