ARG BASE_IMAGE=gvm-libs
ARG BASE_IMAGE_VERSION=latest
FROM $BASE_IMAGE:$BASE_IMAGE_VERSION AS gsad-base

RUN apt install -y \
  libmicrohttpd-dev \
  libxml2-dev \
  libglib2.0-dev \
  libgnutls28-dev

FROM gsad-base

ENV GSAD_VERSION=$GVM_VERSION

RUN curl -f -L https://github.com/greenbone/gsad/archive/refs/tags/v$GSAD_VERSION.tar.gz -o $SOURCE_DIR/gsad-$GSAD_VERSION.tar.gz && \
    curl -f -L https://github.com/greenbone/gsad/releases/download/v$GSAD_VERSION/gsad-$GSAD_VERSION.tar.gz.asc -o $SOURCE_DIR/gsad-$GSAD_VERSION.tar.gz.asc && \
    gpg --verify $SOURCE_DIR/gsad-$GSAD_VERSION.tar.gz.asc $SOURCE_DIR/gsad-$GSAD_VERSION.tar.gz && \
    tar -C $SOURCE_DIR -xvzf $SOURCE_DIR/gsad-$GSAD_VERSION.tar.gz

RUN mkdir -p $BUILD_DIR/gsad && cd $BUILD_DIR/gsad && \
    cmake $SOURCE_DIR/gsad-$GSAD_VERSION \
        -DCMAKE_BUILD_TYPE=Release && \
    make -j$(nproc) && \
    make install

RUN sed -i 's|/var/log/gvm/gsad.log|/dev/stdout|g' /etc/gvm/gsad_log.conf
COPY --from=gsa $INSTALL_PREFIX/share/gvm/gsad/web/ $INSTALL_PREFIX/share/gvm/gsad/web/

ENV GVMD_HOST=gvmd
ENV GVMD_PORT=9390
ENV LISTEN_ADDR=0.0.0.0
ENV LISTEN_PORT=80

COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]

CMD ["gsad", "-f", "--listen=$LISTEN_ADDR", "--port=$LISTEN_PORT", "--http-only", "--mlisten=$GVMD_HOST", "--mport=$GVMD_PORT", "-c", "/etc/gsad/ssl/certificate.crt", "-k", "/etc/gsad/ssl/private.key"]
# CMD gsad -f --listen=$LISTEN_ADDR --port=$LISTEN_PORT --http-only --mlisten=$GVMD_HOST --mport=$GVMD_PORT
