diff --git a/.github/workflows/release-x-manual-docker-containers.yml b/.github/workflows/release-x-manual-docker-containers.yml index 67390b0204..f4549978fc 100644 --- a/.github/workflows/release-x-manual-docker-containers.yml +++ b/.github/workflows/release-x-manual-docker-containers.yml @@ -76,6 +76,7 @@ jobs: push: true file: ./Dockerfile.${{ matrix.docker-image }}-${{ matrix.os }} context: . + target: release outputs: type=image,"name=${{ env.DOCKER_ORG }}/defectdojo-${{ matrix.docker-image}}",push-by-digest=true,name-canonical=true cache-from: type=gha,scope=${{ matrix.docker-image}}-${{ matrix.os }}-${{ env.PLATFORM }}-${{ github.head_ref || github.ref_name }} cache-to: type=gha,mode=max,scope=${{ matrix.docker-image}}-${{ matrix.os }}-${{ env.PLATFORM }}-${{ github.head_ref || github.ref_name }} diff --git a/Dockerfile.django-alpine b/Dockerfile.django-alpine index bcca856298..d0d04ae0bd 100644 --- a/Dockerfile.django-alpine +++ b/Dockerfile.django-alpine @@ -68,25 +68,20 @@ RUN \ COPY \ docker/entrypoint-celery-beat.sh \ docker/entrypoint-celery-worker.sh \ - docker/entrypoint-celery-worker-dev.sh \ docker/entrypoint-initializer.sh \ docker/entrypoint-first-boot.sh \ docker/entrypoint-uwsgi.sh \ - docker/entrypoint-uwsgi-dev.sh \ - docker/entrypoint-unit-tests.sh \ - docker/entrypoint-unit-tests-devDocker.sh \ docker/wait-for-it.sh \ docker/secret-file-loader.sh \ docker/reach_database.sh \ docker/certs/* \ / -COPY wsgi.py manage.py docker/unit-tests.sh ./ +COPY wsgi.py manage.py ./ COPY dojo/ ./dojo/ # Add extra fixtures to docker image which are loaded by the initializer COPY docker/extra_fixtures/* /app/dojo/fixtures/ -COPY tests/ ./tests/ RUN \ # Remove placeholder copied from docker/certs rm -f /readme.txt && \ @@ -139,9 +134,20 @@ ENTRYPOINT ["/entrypoint-uwsgi.sh"] FROM release AS development USER root -COPY requirements-dev.txt ./ -RUN pip3 install --no-cache-dir -r requirements-dev.txt +COPY \ + requirements-dev.txt \ + docker/unit-tests.sh \ + ./ +COPY \ + docker/entrypoint-celery-worker-dev.sh \ + docker/entrypoint-uwsgi-dev.sh \ + docker/entrypoint-unit-tests.sh \ + docker/entrypoint-unit-tests-devDocker.sh \ + / +RUN pip3 install --no-cache-dir -r requirements-dev.txt && \ + chmod 775 /*.sh USER ${uid} FROM development AS django-unittests COPY unittests/ ./unittests/ +COPY tests/ ./tests/ diff --git a/Dockerfile.django-debian b/Dockerfile.django-debian index e816d204e0..e100912a31 100644 --- a/Dockerfile.django-debian +++ b/Dockerfile.django-debian @@ -71,25 +71,20 @@ RUN \ COPY \ docker/entrypoint-celery-beat.sh \ docker/entrypoint-celery-worker.sh \ - docker/entrypoint-celery-worker-dev.sh \ docker/entrypoint-initializer.sh \ docker/entrypoint-first-boot.sh \ docker/entrypoint-uwsgi.sh \ - docker/entrypoint-uwsgi-dev.sh \ - docker/entrypoint-unit-tests.sh \ - docker/entrypoint-unit-tests-devDocker.sh \ docker/wait-for-it.sh \ docker/secret-file-loader.sh \ docker/reach_database.sh \ docker/certs/* \ / -COPY wsgi.py manage.py docker/unit-tests.sh ./ +COPY wsgi.py manage.py ./ COPY dojo/ ./dojo/ # Add extra fixtures to docker image which are loaded by the initializer COPY docker/extra_fixtures/* /app/dojo/fixtures/ -COPY tests/ ./tests/ RUN \ # Remove placeholder copied from docker/certs rm -f /readme.txt && \ @@ -142,9 +137,20 @@ ENTRYPOINT ["/entrypoint-uwsgi.sh"] FROM release AS development USER root -COPY requirements-dev.txt ./ -RUN pip3 install --no-cache-dir -r requirements-dev.txt +COPY \ + requirements-dev.txt \ + docker/unit-tests.sh \ + ./ +COPY \ + docker/entrypoint-celery-worker-dev.sh \ + docker/entrypoint-uwsgi-dev.sh \ + docker/entrypoint-unit-tests.sh \ + docker/entrypoint-unit-tests-devDocker.sh \ + / +RUN pip3 install --no-cache-dir -r requirements-dev.txt && \ + chmod 775 /*.sh USER ${uid} FROM development AS django-unittests COPY unittests/ ./unittests/ +COPY tests/ ./tests/ diff --git a/Dockerfile.nginx-alpine b/Dockerfile.nginx-alpine index aa867828a2..bfdf4a4114 100644 --- a/Dockerfile.nginx-alpine +++ b/Dockerfile.nginx-alpine @@ -63,7 +63,7 @@ COPY dojo/ ./dojo/ # always collect static for debug toolbar as we can't make it dependant on env variables or build arguments without breaking docker layer caching RUN env DD_SECRET_KEY='.' DD_DJANGO_DEBUG_TOOLBAR_ENABLED=True python3 manage.py collectstatic --noinput --verbosity=2 && true -FROM nginx:1.29.3-alpine3.22@sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14 +FROM nginx:1.29.3-alpine3.22@sha256:b3c656d55d7ad751196f21b7fd2e8d4da9cb430e32f646adcf92441b72f82b14 AS release ARG uid=1001 ARG appuser=defectdojo COPY --from=collectstatic /app/static/ /usr/share/nginx/html/static/ diff --git a/docker-compose.override.integration_tests.yml b/docker-compose.override.integration_tests.yml index 215529180d..8d6efe954f 100644 --- a/docker-compose.override.integration_tests.yml +++ b/docker-compose.override.integration_tests.yml @@ -23,6 +23,8 @@ services: volumes: - defectdojo_media_integration_tests:/usr/share/nginx/html/media uwsgi: + build: + target: development entrypoint: ['/wait-for-it.sh', '${DD_DATABASE_HOST:-postgres}:${DD_DATABASE_PORT:-5432}', '-t', '30', '--', '/entrypoint-uwsgi-dev.sh'] volumes: - '.:/app:z'