Fix Docker build failure, add docker compose file for convenience - #1132
Merged
Conversation
bact
requested changes
Aug 1, 2025
bact
approved these changes
Aug 1, 2025
|
wannaphong
approved these changes
Aug 1, 2025
Member
|
Merged with 2 approvals. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.



Description
This PR fixes a critical bug that prevents the Docker image from building. The build fails when
COPY . .runs without a WORKDIR, causing subsequent RUN commands to fail:Changes Made
WORKDIR /appdirective beforeCOPY . .in Dockerfiledocker-compose.ymlfor improved development workflow - this simplifies volume mounting, environment variables, and container management with just a single command likedocker-compose run pythainlpinstead of lengthydocker runcommandsThe Issue
The repository contains a
bindirectory. WhenCOPY . .executes without a WORKDIR, it copies all repository contents to the container's root (/). This causes the system's/bin/shto become inaccessible to subsequent RUN commands, though the exact mechanism is not clear (overwriting?).Setting WORKDIR before COPY ensures repository contents are isolated in
/app, preventing any interference with system directories.Testing
docker run -it pythainlp python -c "from pythainlp.tokenize import word_tokenize; print(word_tokenize('สวัสดีครับ'))"docker-compose run pythainlp pythonAdditional Notes
During testing, I discovered the CLI interface (
thainlpcommand) produces no output in Docker containers, though the Python API works correctly. I've reported this separately in issue #1131