fix: resolve Docker entrypoint error on Windows by enforcing LF line endings for shell scripts #138
+107
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What issue this PR fixes
This PR resolves a Docker entrypoint error that occurs when building and running the container on Windows. The error is caused by Windows-style (CRLF) line endings in
entrypoint.sh, which prevent the shell from executing the script correctly in the Linux-based container.How to reproduce the issue
docker build -t copilot-api .Root cause
When shell scripts are created or edited on Windows, they default to CRLF (Carriage Return + Line Feed,
\r\n) line endings. When the shebang line#!/bin/shcontains a\rcharacter, the Linux kernel interprets it as part of the interpreter path (/bin/sh\r), which doesn't exist. This causes the "no such file or directory" error even though the file itself is present in the container.Solution
This PR adds a
.gitattributesfile to enforce LF line endings for shell scripts, ensuring compatibility with Docker on Windows.