ARG BASE_IMAGE=gvm-libs
ARG BASE_IMAGE_VERSION=latest
FROM $BASE_IMAGE:$BASE_IMAGE_VERSION as gsa-base

RUN export KEYRING=/usr/share/keyrings/nodesource.gpg && export VERSION=node_16.x && export DISTRO="$(lsb_release -s -c)" && \
    curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee "$KEYRING" >/dev/null && \
    echo "deb [signed-by=$KEYRING] https://deb.nodesource.com/$VERSION $DISTRO main" | tee /etc/apt/sources.list.d/nodesource.list && \
    echo "deb-src [signed-by=$KEYRING] https://deb.nodesource.com/$VERSION $DISTRO main" | tee -a /etc/apt/sources.list.d/nodesource.list

RUN apt update && apt install -y nodejs && npm install -g yarn

FROM gsa-base

ENV GSA_VERSION=$GVM_VERSION
# ENV GSA_VERSION=21.4.3
RUN curl -f -L https://github.com/greenbone/gsa/archive/refs/tags/v$GSA_VERSION.tar.gz -o $SOURCE_DIR/gsa-$GSA_VERSION.tar.gz && \
    curl -f -L https://github.com/greenbone/gsa/releases/download/v$GSA_VERSION/gsa-$GSA_VERSION.tar.gz.asc -o $SOURCE_DIR/gsa-$GSA_VERSION.tar.gz.asc && \
    gpg --verify $SOURCE_DIR/gsa-$GSA_VERSION.tar.gz.asc $SOURCE_DIR/gsa-$GSA_VERSION.tar.gz && \
    tar -C $SOURCE_DIR -xvzf $SOURCE_DIR/gsa-$GSA_VERSION.tar.gz

ENV NODE_ENV=production

RUN cd $SOURCE_DIR/gsa-$GSA_VERSION && \
    rm -rf build && \
    rm .eslintrc.js && \
    yarn && \
    npx --yes browserslist@latest --update-db && \
    # npm install eslint-config-prettier && \
    # npm install eslint && \
    yarn build && \
    mkdir -p $INSTALL_PREFIX/share/gvm/gsad/web/ && \
    cp -r build/* $INSTALL_PREFIX/share/gvm/gsad/web/
