From 69c599b015c78f7d312e27e955116309bff39a88 Mon Sep 17 00:00:00 2001
From: erow <clouderow@gmail.com>
Date: Wed, 7 Feb 2024 16:11:38 +0000
Subject: [PATCH] init

---
 .gitlab-ci.yml | 38 ++++++++++++++++++++++++++++++++++++++
 Dockerfile     | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+)
 create mode 100644 .gitlab-ci.yml
 create mode 100644 Dockerfile

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..e390684
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,38 @@
+# This file is a template, and might need editing before it works on your project.
+# To contribute improvements to CI/CD templates, please follow the Development guide at:
+# https://docs.gitlab.com/ee/development/cicd/templates.html
+# This specific template is located at:
+# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Docker.gitlab-ci.yml
+
+# Build a Docker image with CI/CD and push to the GitLab registry.
+# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
+#
+# This template uses one generic job with conditional builds
+# for the default branch and all other (MR) branches.
+
+docker-build:
+  # Use the official docker image.
+  image: aisurrey:latest
+  stage: build
+  services:
+    - docker:dind
+  before_script:
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+  # Default branch leaves tag empty (= latest tag)
+  # All other branches are tagged with the escaped branch name (commit ref slug)
+  script:
+    - |
+      if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then
+        tag=""
+        echo "Running on default branch '$CI_DEFAULT_BRANCH': tag = 'latest'"
+      else
+        tag=":$CI_COMMIT_REF_SLUG"
+        echo "Running on branch '$CI_COMMIT_BRANCH': tag = $tag"
+      fi
+    - docker build --pull -t "$CI_REGISTRY_IMAGE${tag}" .
+    - docker push "$CI_REGISTRY_IMAGE${tag}"
+  # Run this job in a branch where a Dockerfile exists
+  rules:
+    - if: $CI_COMMIT_BRANCH
+      exists:
+        - Dockerfile
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..259f989
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,36 @@
+
+ARG PYTORCH="2.1.1"
+ARG CUDA="12.1"
+ARG CUDNN="8"
+
+
+# FROM pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime
+FROM docker.io/pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-runtime
+
+
+
+# To fix GPG key error when running apt-get update
+# RUN rm /etc/apt/sources.list.d/cuda.list \
+#     && rm /etc/apt/sources.list.d/nvidia-ml.list \
+#     && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub \
+#     && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub
+
+# Install system dependencies for opencv-python
+
+RUN  apt update &&  apt install -y libgl1 libglib2.0-0 \
+    && apt clean 
+    # && rm -rf /var/lib/apt/lists/*
+
+RUN pip install mmcv==2.1.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.1/index.html \
+    && pip cache purge
+# Verify the installation
+RUN python -c 'import mmcv;print(mmcv.__version__)'
+
+# Install FFCV
+RUN conda install cupy pkg-config libjpeg-turbo opencv cudatoolkit=${CUDA} numba -c pytorch -c conda-forge
+RUN pip install ffcv \
+    && pip cache purge
+
+# useful tools
+RUN pip install timm wandb imageio pandas gin-config tqdm\
+    && pip cache purge
-- 
GitLab