mirror of
https://github.com/telekom-security/tpotce.git
synced 2025-04-20 06:02:24 +00:00

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
34 lines
762 B
Docker
34 lines
762 B
Docker
FROM node:10.24.1-alpine3.11 as builder
|
|
#
|
|
# Install CyberChef
|
|
RUN apk -U --no-cache add git
|
|
RUN chown -R node:node /srv
|
|
RUN npm install -g grunt-cli
|
|
WORKDIR /srv
|
|
USER node
|
|
RUN git clone https://github.com/gchq/cyberchef -b v9.32.3 .
|
|
ENV NODE_OPTIONS=--max_old_space_size=2048
|
|
RUN npm install
|
|
RUN grunt prod
|
|
#
|
|
# Move from builder
|
|
FROM alpine:3.15
|
|
#
|
|
RUN apk -U --no-cache add \
|
|
curl \
|
|
npm && \
|
|
npm install -g http-server && \
|
|
#
|
|
# Clean up
|
|
rm -rf /root/* && \
|
|
rm -rf /var/cache/apk/*
|
|
#
|
|
COPY --from=builder /srv/build/prod /opt/cyberchef
|
|
#
|
|
# Healthcheck
|
|
HEALTHCHECK --retries=10 CMD curl -s -XGET 'http://127.0.0.1:8000'
|
|
#
|
|
# Set user, workdir and start cyberchef
|
|
USER nobody:nobody
|
|
WORKDIR /opt/cyberchef
|
|
CMD ["http-server", "-p", "8000"]
|