Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

도커 환경내에서 poetry로 의존성 관리를 할때의 도커 명령어 #14

Open
yoonju977 opened this issue Aug 16, 2024 · 2 comments
Labels
bug Something isn't working

Comments

@yoonju977
Copy link
Collaborator

yoonju977 commented Aug 16, 2024

버그 리포트

어떤 버그인가요?

버그에 대해 알려주세요/ 터미널에 ERROR메세지 ctrl+c/v


도커내에서 requirements가 아닌 poetry로 파이썬 의존성 관리를 할때, 명령어의 형태를 어떻게 해야하는가???

어떤 상황에서 겪으셨나요?


Poetry는 Python 패키지 관리 도구일 뿐이며, Docker 컨테이너 내부에서 Python 환경을 관리하는 역할을 한다. 즉, Docker 컨테이너가 실행 중이라면, 그 안에서 python manage.py 명령어를 실행할 때에는 Poetry가 이미 설정된 환경에서 작동하게 되므로 docker-compose run app poetry run python 를 굳이 쓰지 않아도 된다. 해당 명령어는 python 명령을 poetry가 설정한 가상환경에서 특정한 컨테이너 내에서 실행시키기 위한 명령어 이므로 도커파일로 poetry 의존성과 run의 명령어가 들어가 있는경우 build와 up의 작업을 통해 이미 poetry가 실행중이기 때문에 기존의 명령어인 docker-compose exec app을 사용해도 무방.

docker-compose run app ...:

  • 새로운 컨테이너를 생성하여 명령어를 실행합니다.
  • 컨테이너가 이미 실행 중이지 않아도 사용할 수 있습니다.
  • 주로 한 번 실행하고 종료할 명령에 사용됩니다.
  • 컨테이너가 종료된 후, 컨테이너는 제거됩니다(기본 설정).

docker-compose exec app ...:

  • 이미 실행 중인 컨테이너 내에서 명령어를 실행합니다.
  • 컨테이너가 이미 실행 중이어야 합니다.
  • 장기적으로 실행되는 서비스에 명령어를 추가로 실행할 때 사용됩니다.

언제 poetry run을 사용하는가???

  • Docker 컨테이너를 처음 실행할 때:
    •컨테이너가 실행 중이지 않을 때 특정 명령어를 한 번 실행하고 싶을 때 사용합니다.
    •예를 들어, 새로운 명령어를 테스트하거나 한 번만 실행되는 마이그레이션을 할 때 사용할 수 있습니다.

참고할만한 자료가 있을까요?, 기능 만들때 참고한 레퍼런스등...

참고자료가 있다면 첨부해주세요



@yoonju977 yoonju977 added the bug Something isn't working label Aug 16, 2024
@bamjun
Copy link

bamjun commented Aug 19, 2024

poetry run은 poetry shell로 가상환경 진입안하고, 실행하고 싶을때 사용합니다.

  • poetry shell 하면 가상환경에 진입하고, poetry run 없이 python manage.py runserver를 하면되고,
  • poetry shell 을 안하고(가상환경 진입안하고), 실행할때는 poetry run python manage.py runserver 를하면 됩니다.

상세 코드

# poetry를 사용하여 의존성을 설치합니다. 가상 환경은 생성하지 않습니다.
RUN poetry config virtualenvs.create false \
    && poetry install --no-dev --no-interaction --no-ansi

도움이 필요하시면 알려주세요 ㅋㅋ

@yoonju977
Copy link
Collaborator Author

감사합니다!
굳굳!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants