diff --git a/Dockerfile.cli b/Dockerfile.cli index f637d9e..b3b8ab0 100644 --- a/Dockerfile.cli +++ b/Dockerfile.cli @@ -34,7 +34,7 @@ COPY src/requirements.txt . COPY src/sbom_dt_dd.py . COPY src/sbom_dt_dd_cli.py . COPY src/converter.py . -COPY src/entrypoint.sh . +COPY src/entrypoint-cli.sh . COPY dependencytrack-client/ ./dependencytrack-client COPY defectdojo-client/ ./defectdojo-client @@ -45,7 +45,7 @@ RUN \ pip install -r dependencytrack-client/requirements.txt &&\ pip install -r defectdojo-client/requirements.txt -ENTRYPOINT [ "./entrypoint.sh" ] +ENTRYPOINT [ "./entrypoint-cli.sh" ] diff --git a/Dockerfile.server b/Dockerfile.server new file mode 100644 index 0000000..9ef18fb --- /dev/null +++ b/Dockerfile.server @@ -0,0 +1,52 @@ +FROM python:3.12.10-alpine3.22 + +ENV DTRACK_API_URL="" +ENV DTRACK_TOKEN="" +ENV DEFECTDOJO_URL="" +ENV DEFECTDOJO_TOKEN="" + +ARG APP_DIR=/opt/app +ARG ADDITIONAL_CA_URL="x" +ARG ADDITIONAL_CA_CHECKSUM="y" + +RUN \ + set -e &&\ + adduser -s /bin/sh -D user &&\ + mkdir -p $APP_DIR &&\ + chown user:user $APP_DIR &&\ + echo $ADDITIONAL_CA_URL &&\ + echo $ADDITIONAL_CA_CHECKSUM &&\ + if [ "$ADDITIONAL_CA_URL" != "x" ]; then \ + cd /usr/local/share/ca-certificates; \ + wget --no-check-certificate -O custom-ca.crt $ADDITIONAL_CA_URL; \ + echo "$ADDITIONAL_CA_CHECKSUM custom-ca.crt" | md5sum -c; \ + /usr/sbin/update-ca-certificates; \ + echo "custom ca added"; \ + else \ + echo "no additional ca"; \ + fi + +USER user +WORKDIR $APP_DIR + +COPY src/requirements.txt . +COPY src/sbom_dt_dd.py . +COPY src/sbom_dt_dd_api.py . +COPY src/converter.py . +COPY src/entrypoint-server.sh . +COPY dependencytrack-client/ ./dependencytrack-client +COPY defectdojo-client/ ./defectdojo-client + +RUN \ + python -m venv .venv &&\ + . ./.venv/bin/activate &&\ + pip install -r requirements.txt &&\ + pip install -r dependencytrack-client/requirements.txt &&\ + pip install -r defectdojo-client/requirements.txt + +EXPOSE 8000 + +ENTRYPOINT [ "./entrypoint-server.sh" ] + + + diff --git a/src/entrypoint.sh b/src/entrypoint-cli.sh similarity index 100% rename from src/entrypoint.sh rename to src/entrypoint-cli.sh diff --git a/src/entrypoint-server.sh b/src/entrypoint-server.sh new file mode 100755 index 0000000..b39c8ab --- /dev/null +++ b/src/entrypoint-server.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +source /opt/app/.venv/bin/activate + +PYTHONPATH="$PYTHONPATH:/opt/app/dependencytrack-client" +PYTHONPATH="$PYTHONPATH:/opt/app/defectdojo-client" +export PYTHONPATH + +gunicorn sbom_dt_dd_api:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000 diff --git a/src/server.sh b/src/server.sh deleted file mode 100755 index 5f30c60..0000000 --- a/src/server.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -./.venv/bin/gunicorn sbom_dt_dd_api:app -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000