diff --git a/cpp/Dockerfile b/cpp/Dockerfile new file mode 100644 index 0000000..b1539c4 --- /dev/null +++ b/cpp/Dockerfile @@ -0,0 +1,17 @@ +FROM nvidia/cuda:12.4.1-devel-ubi9 as builder + +WORKDIR /home/ViolaJones/cpp + +COPY *.cu *.cpp *.hpp Makefile ./ +RUN make -j "$(nproc)" + +FROM nvidia/cuda:12.4.1-base-ubi9 + +WORKDIR /home/ViolaJones/cpp + +RUN dnf install -y make-1:4.3-7.el9 && dnf clean all +COPY --from=builder /home/ViolaJones/cpp/bin ./bin +COPY Makefile . + +ENTRYPOINT ["make"] +CMD ["start"] diff --git a/cpp/docker-compose.yaml b/cpp/docker-compose.yaml new file mode 100644 index 0000000..6bd7ad8 --- /dev/null +++ b/cpp/docker-compose.yaml @@ -0,0 +1,15 @@ +services: + violajones-cpp: + image: saundersp/violajones-cpp + build: . + volumes: + - ./models:/home/ViolaJones/cpp/models + - ./out:/home/ViolaJones/cpp/out + - ../data:/home/ViolaJones/data + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..4c97967 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,19 @@ +services: + downloader: + extends: + file: ./downloader/docker-compose.yaml + service: downloader + violajones-cpp: + extends: + file: ./cpp/docker-compose.yaml + service: violajones-cpp + depends_on: + downloader: + condition: service_completed_successfully + violajones-python: + extends: + file: ./python/docker-compose.yaml + service: violajones-python + depends_on: + downloader: + condition: service_completed_successfully diff --git a/downloader/Dockerfile b/downloader/Dockerfile new file mode 100644 index 0000000..4d80350 --- /dev/null +++ b/downloader/Dockerfile @@ -0,0 +1,11 @@ +FROM alpine:3.19.1 + +RUN apk add --no-cache curl=8.5.0-r0 python3=3.11.9-r0 && rm -rf /var/cache/apk* + +WORKDIR /home/ViolaJones/downloader +COPY requirements.txt activate.sh ./ +RUN ./activate.sh + +COPY download_data.sh convert_dataset.py ./ + +CMD ["./download_data.sh"] diff --git a/downloader/docker-compose.yaml b/downloader/docker-compose.yaml new file mode 100644 index 0000000..9011adf --- /dev/null +++ b/downloader/docker-compose.yaml @@ -0,0 +1,6 @@ +services: + downloader: + image: saundersp/violajones-downloader + build: . + volumes: + - ../data:/home/ViolaJones/data diff --git a/python/Dockerfile b/python/Dockerfile new file mode 100644 index 0000000..a7cd52d --- /dev/null +++ b/python/Dockerfile @@ -0,0 +1,12 @@ +FROM nvidia/cuda:12.4.1-devel-ubi9 as builder + +RUN dnf install -y python3.11-3.11.5-1.el9_3 && dnf clean all +RUN ln -s /usr/bin/python3 /usr/bin/python + +WORKDIR /home/ViolaJones/python +COPY Makefile activate.sh requirements.txt ./ +RUN make venv +COPY *.py ./ + +ENTRYPOINT ["make"] +CMD ["start"] diff --git a/python/docker-compose.yaml b/python/docker-compose.yaml new file mode 100644 index 0000000..ee758ce --- /dev/null +++ b/python/docker-compose.yaml @@ -0,0 +1,15 @@ +services: + violajones-python: + image: saundersp/violajones-python + build: . + volumes: + - ./models:/home/ViolaJones/python/models + - ./out:/home/ViolaJones/python/out + - ../data:/home/ViolaJones/data + deploy: + resources: + reservations: + devices: + - driver: nvidia + count: 1 + capabilities: [gpu]