aboutcode-org / aboutcode-org/vulnerablecode

Windows developers unable to run docker-compose due to line ending issues

Aperta
#2,100 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
702
Fork
328
Merge medio
3g 8h
PR unite (30g)
3

Descrizione

## Description

Windows developers encounter a critical failure when attempting to run VulnerableCode using Docker Compose. The main `vulnerablecode` service fails to start with the following error:

```
env: use -[v]S to pass options in shebang line
```

This prevents Windows developers from setting up a local development environment and running essential commands like:
```bash
docker compose exec vulnerablecode ./manage.py import
docker compose exec vulnerablecode ./manage.py improve --all
```

## Root Cause

The issue occurs because:

1. Git on Windows by default converts line endings from LF (Unix) to CRLF (Windows) when cloning repositories
2. The repository lacks a `.gitattributes` file to enforce consistent line endings
3. When Docker runs the Linux container, the shebang line (`#!/usr/bin/env python`) in `manage.py` fails because it includes the Windows carriage return (`\r`) character
4. This causes the container to exit immediately with code 1

## Steps to Reproduce

**Environment:**
- OS: Windows 10/11
- Docker Desktop for Windows (with WSL2 backend)
- Git for Windows (default settings)

**Steps:**
1. Clone the repository on Windows: `git clone https://github.com/aboutcode-org/vulnerablecode.git`
2. Navigate to the directory: `cd vulnerablecode`
3. Run: `docker compose up -d`
4. Check service status: `docker compose ps`
5. Observe that the `vulnerablecode` service has exited
6. Check logs: `docker compose logs vulnerablecode`

**Expected behavior:** All services should start successfully and remain running.

**Actual behavior:** The `vulnerablecode` service exits with error "env: use -[v]S to pass options in shebang line"

## Impact

This issue affects:
- New contributors trying to set up their development environment on Windows
- Windows developers participating in GSoC or other contribution programs
- Anyone attempting to test or deploy VulnerableCode on Windows with Docker

## Additional Notes

This is a common issue in cross-platform development and is considered a best practice to include a `.gitattributes` file in repositories that are used across different operating systems.

## I would like to contribute

I'd be happy to submit a PR to add the `.gitattributes` file and update the documentation if needed. Please let me know if this approach looks good to you.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.