>백엔드 개발 >파이썬 튜토리얼 >Python 애플리케이션용 Dockerfile

Python 애플리케이션용 Dockerfile

Susan Sarandon
Susan Sarandon원래의
2024-12-15 14:17:14237검색

Dockerfile for a Python application

Python 애플리케이션을 위한 간단한 Dockerfile을 만들어 보겠습니다. 이 예에서는 app.py라는 Python 스크립트와 애플리케이션에 대한 종속성을 포함하는 요구사항.txt 파일이 있다고 가정합니다.

  1. 터미널을 엽니다.
  2. Dockerfile을 생성하거나 편집하려는 디렉터리로 이동합니다.
  3. vi Dockerfile을 입력하고 Enter를 누르세요. 그러면 Dockerfile이라는 새 파일이 포함된 vi 편집기가 열립니다.
  4. 삽입 모드로 들어가려면 i를 누르세요. 이제 Dockerfile 내용 입력을 시작할 수 있습니다.
  5. 수정이 ​​끝나면 Esc를 눌러 삽입 모드를 종료하세요.
  6. :wq를 입력하고 Enter를 눌러 변경 사항을 저장하고 vi를 종료합니다. 저장하지 않고 종료하려면 :q! Enter 키를 누릅니다.
# Use an official Python runtime as a parent image
FROM python:3.9-slim

# Set the working directory in the container
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed dependencies specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Make port 8080 available to the world outside this container
EXPOSE 8080

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

이 Dockerfile의 내용:

  • 우리는 버전 3.9(구체적으로 더 작은 슬림 변형)의 공식 Python Docker 이미지를 사용하고 있습니다.
  • 컨테이너 내부의 작업 디렉터리를 /app으로 설정합니다.
  • 현재 디렉토리(app.py 및 요구사항.txt 파일이 상주해야 하는 디렉토리)를 /app의 컨테이너에 복사합니다.
  • requirements.txt에 지정된 Python 종속성을 설치합니다.
  • 컨테이너와의 통신을 위해 포트 8080을 노출합니다.
  • 환경 변수 NAME을 "World"로 설정했습니다(필요에 따라 변경할 수 있음).
  • 마지막으로 컨테이너가 시작될 때 실행할 명령을 python app.py로 지정합니다.

이 Dockerfile을 사용하여 이미지를 빌드하려면 Dockerfile이 포함된 디렉터리로 이동하여 다음을 실행하세요.

docker build -t my-python-app .

my-python-app을 Docker 이미지의 원하는 이름으로 바꾸세요.

이미지를 빌드한 후 다음을 사용하여 이미지에서 컨테이너를 실행할 수 있습니다.

docker run -p 8080:8080 my-python-app

이 명령은 Docker 이미지를 기반으로 컨테이너를 실행하여 컨테이너의 포트 8080을 호스트 시스템의 포트 8080으로 전달합니다. 애플리케이션 요구 사항에 따라 필요에 따라 포트 매핑을 조정하세요.

위 내용은 Python 애플리케이션용 Dockerfile의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.