Skip to content

Commit

Permalink
ci: PLT-299: add dockerignore files (HumanSignal#491)
Browse files Browse the repository at this point in the history
  • Loading branch information
farioas authored Apr 9, 2024
1 parent 36b712b commit 59a9b66
Show file tree
Hide file tree
Showing 19 changed files with 368 additions and 54 deletions.
42 changes: 42 additions & 0 deletions .github/scripts/validate_dockerignore.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash

DUMMY_DOCKERFILE_CONTENT="FROM alpine\nCOPY . /app"
TEMP_IMAGE_BASE="temp_context_image"

# Loop through all directories containing a .dockerignore file
for dir in ../../label_studio_ml/examples/*/; do
if [ -f "$dir/.dockerignore" ]; then
echo "Checking directory: $dir"

# Navigate into the directory
pushd "$dir" >/dev/null

# Create a temporary dummy Dockerfile
echo -e "$DUMMY_DOCKERFILE_CONTENT" >Dockerfile.tmp

# Define a unique temporary image name using directory name to avoid conflicts
TEMP_IMAGE="${TEMP_IMAGE_BASE}_$(basename "$dir")"

# Build the temporary image and get its ID
docker build -q -f Dockerfile.tmp -t "$TEMP_IMAGE" . >/dev/null

# Remove the temporary Dockerfile
rm -f Dockerfile.tmp

# List all files excluding the temporary Dockerfile, sorted for comparison
LOCAL_FILES=$(find . -mindepth 1 -type f -not -name "Dockerfile.tmp" | grep -v '.dockerignore\|README.md' | sort)

# Use a Docker container to list all files included in the build context, simulating .dockerignore application
INCLUDED_FILES=$(docker run --rm -w /app "${TEMP_IMAGE}" find . -mindepth 1 -type f | grep -v '.dockerignore\|README.md' | sort)

# Pop back to the parent directory
popd >/dev/null

# Compare the lists to find files not ignored by .dockerignore (included in Docker context)
echo "Files ignored by .dockerignore:"
comm -23 <(echo "$LOCAL_FILES") <(echo "$INCLUDED_FILES")
echo "---------------------------------------------------------------------------------------------------------------------------"
else
echo "No .dockerignore found in $dir"
fi
done
18 changes: 18 additions & 0 deletions label_studio_ml/default_configs/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/bert_classifier/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/easyocr/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
!label_mappings.json
18 changes: 18 additions & 0 deletions label_studio_ml/examples/flair/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
20 changes: 18 additions & 2 deletions label_studio_ml/examples/grounding_dino/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,18 @@
node_modules/*
docker-data/*
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/huggingface_llm/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/huggingface_ner/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/langchain/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/llm_interactive/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
!default_prompt.txt
29 changes: 18 additions & 11 deletions label_studio_ml/examples/mmdetection-3/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
Dockerfile
README.md
*.pyc
*.pyo
*.pyd
__pycache__
.pytest_cache
.idea
docker-compose.yml
data
logs
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
31 changes: 20 additions & 11 deletions label_studio_ml/examples/mmdetection/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
Dockerfile
README.md
*.pyc
*.pyo
*.pyd
__pycache__
.pytest_cache
.idea
docker-compose.yml
data
logs
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
!supervisord.conf
!uwsgi.ini
!_base_/
18 changes: 18 additions & 0 deletions label_studio_ml/examples/nemo_asr/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
37 changes: 18 additions & 19 deletions label_studio_ml/examples/segment_anything_model/.dockerignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
Dockerfile
README.md
*.pyc
*.pyo
*.pyd
__pycache__
.pytest_cache
.idea
docker-compose.yml
data
logs
*.db
*.sqlite3
*.sqlite
*.sql
*.pt
*.pth
*.onnx
models/*
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/simple_text_classifier/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
18 changes: 18 additions & 0 deletions label_studio_ml/examples/sklearn_text_classifier/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Exclude everything
**

# Include Dockerfile and docker-compose for reference (optional, decide based on your use case)
!Dockerfile
!docker-compose.yml

# Include Python application files
!*.py

# Include requirements files
!requirements*.txt

# Include script
!*.sh

# Exclude specific requirements if necessary
# requirements-test.txt (Uncomment if you decide to exclude this)
Loading

0 comments on commit 59a9b66

Please sign in to comment.