aboutcode-org / aboutcode-org/vulnerablecode

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

Aberta
#2,100 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Python
Estrelas
702
Forks
328
Merge médio
3d 8h
PRs com merge (30d)
3

Descrição

## 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.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.