Docker 는 Python 프로젝트 의 실현 에 대한 상세 한 설명 을 어떻게 배치 합 니까?

Docker 는 개발 자 와 시스템 관리자 에 게 프로그램 을 경량급 용기 로 구축 하고 포장 하 며 어디서 든 실행 할 수 있 는 오픈 플랫폼 을 제공 하 는 오픈 소스 프로젝트 입 니 다.Docker 는 소프트웨어 용기 에 프로그램 을 자동 으로 배치 합 니 다.
이 편 에서 저 는 docker 를 Python Django 프로그램 으로 만 드 는 방법 을 소개 하고 docker-compose 스 크 립 트 를 사용 하여 프로그램 을 용기 로 docker 환경 에 배치 하 는 방법 을 소개 합 니 다.
환경.
운영 체제

dbnuo@localhost ~ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.3
BuildVersion: 19D76

 dbnuo@localhost ~ uname -v
Darwin Kernel Version 19.3.0: Thu Jan 9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64

Docker 버 전

 dbnuo@localhost ~ docker -v
Docker version 19.03.8, build afacb8b
Docker 컴 포 지 팅 버 전

 dbnuo@localhost ~ docker-compose -v
docker-compose version 1.25.4, build 8d51620a
디 렉 터 리 구조
이번에 사용 할 파일 과 디 렉 터 리 를 보 여 줍 니 다.다음은 각 파일 디 렉 터 리 의 역할 과 내용 을 소개 합 니 다.

.
├── bash.alias
├── docker-compose.yml
├── .env
├── services
│  └── python
│  │  ├── Dockerfile
│  │  └── requirements.txt
└── www
  └── python
  • bash.alias:로 컬 터미널 의 명령 을 기록 합 니 다.
  • docker-compose.yml:용기 설정 파일.
  • .env:환경 변수 설정 파일.
  • services/python/dockerfile:미 러 구축 파일.
  • services/python/equirements.txt:패키지 관리 파일 에 의존 합 니 다.
  • www/python:프로젝트/코드 저장 디 렉 터 리.
  • 구축 배치
    환경 변수 설정
    .env 파일 을 열 고 다음 내용 을 추가 합 니 다.
    
    #
    # python
    #
    PYTHON_VERSION=3.8.2
    PYTHON_PORT=9100
    
  • PYTHON_VERSION:Python 태 그 를 설정 하면 Docker Hub 에서 모든 태 그 를 볼 수 있 습 니 다.
  • PYTHON_PORT:로 컬 맵 용기 포트 의 포트 입 니 다.
  • 미 러 구축
    services/python/dockerfile 파일 을 열 고 다음 내용 을 추가 합 니 다.
    
    ARG PYTHON_VERSION
    FROM python:${PYTHON_VERSION} AS python-base
    
    ENV LANG C.UTF-8
    ENV LC_ALL C.UTF-8
    ENV PYTHONDONTWRITEBYTECODE 1
    ENV PYTHONFAULTHANDLER 1
    
    FROM python-base AS python-deps
    
    WORKDIR /code
    
    RUN apt-get update \
      && apt-get -y install freetds-dev \
      && apt-get -y install unixodbc-dev
    
    COPY requirements.txt ./
    
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
    
    
    나 는 모든 부분 을 설명 한다.
    우선 그 위 에 미 러 를 구축 할 Python 미 러 를 지정 합 니 다.이것 은 Docker 조직 이 제공 하 는 공식 미 러 입 니 다.이 Python 미 러 버 전 은 환경 변수 PYTHON 입 니 다.VERSION 설정.이 미 러 의 이름 은 python-base 입 니 다.다음 단계 에서 사용 할 것 입 니 다.
    
    ARG PYTHON_VERSION
    FROM python:${PYTHON_VERSION} AS python-base
    
    그 다음 에 환경 변 수 를 설정 하여 언어 환경 을 정확하게 설정 하고 Python 이.pyc 파일 을 생 성 하 는 것 을 막 으 며 segfaults 에서 Python 트 레이스 를 사용 합 니 다.
    
    ENV LANG C.UTF-8
    ENV LC_ALL C.UTF-8
    ENV PYTHONDONTWRITEBYTECODE 1
    ENV PYTHONFAULTHANDLER 1
    
    마지막 으로 python-base 미 러 를 사용 하여 새로운 구축 단 계 를 시작 합 니 다.python-deps 이미지 에 모든 Python 의존 항목 을 설치 합 니 다:
    
    FROM python-base AS python-deps
    
    WORKDIR /code
    
    RUN apt-get update \
      && apt-get -y install freetds-dev \
      && apt-get -y install unixodbc-dev
    
    COPY requirements.txt ./
    
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
    
    
    패키지 관리
    services/python/requirements.txt 파일 을 열 고 프로젝트 에 필요 한 의존 도 를 추가 합 니 다.예시:
    
    Django==3.0.4
    djangorestframework==3.11.0
    pyDes==2.0.1
    PyMySQL==0.9.3
    redis==3.4.1
    requests==2.23.0
    pyodbc==4.0.30
    paramiko==2.7.1
    psutil==5.7.0
    
    용기 설정
    docker-compose.yml 파일 을 열 고 용 기 를 설정 합 니 다:
    
    version: "3"
    services:
    
     python:
      build:
       context: ./services/python
       args:
        PYTHON_VERSION: ${PYTHON_VERSION}
      command: python3 /code/HelloWorld/manage.py runserver 0.0.0.0:8000
    #  command:
    #   - /bin/sh
    #   - -c
    #   - |
    #    django-admin startproject HelloWorld
    #    python3 /code/HelloWorld/manage.py runserver 0.0.0.0:8000
      container_name: python
      hostname: python
      volumes:
       - ${SOURCE_DIR}/python:/code:rw
      expose:
       - "8000"
      ports:
       - "${PYTHON_PORT}:8000"
      privileged: true
      restart: always
      networks:
       - default
    
    networks:
     default:
    
    
    Docker Compose 에 대한 상세 한 소 개 는 찾 아 보 실 수 있 습 니 다공식 문서.
    여기 서 command 를 설명 합 니 다.이것 은 용기 가 시 작 된 후에 실행 하도록 설 정 된 명령 입 니 다.Dockerfile 과 유사 한 CMD 입 니 다.
    설정 에 또 두 개의 command 가 있 습 니 다.그 중 하 나 는 주석 입 니 다.둘 은 하나만 사용 할 수 있 습 니 다.첫 번 째 는 단일 명령 의 설정 방식 이 고,다음은 여러 명령 의 설정 방식 입 니 다.개인 적 인 상황 에 따라 명령 과 경 로 를 수정 합 니 다(첫 번 째 테스트,아래 command 를 사용 하 는 것 을 권장 합 니 다.HelloWorld 프로젝트 를 자동 으로 초기 화하 고 시작 합 니 다).
    시동 용기
    파일 루트 디 렉 터 리 에서 명령 실행:
    
    docker-compose up -d
    
    이 명령 을 실행 하면 자동 으로 미 러 를 구축 하고 용 기 를 시작 합 니 다.실행 이 끝 난 후:
    이미지 보기:
    
    docker images
    
    REPOSITORY              TAG         IMAGE ID      CREATED       SIZE
    dnmp_python             latest       7218552b8814    17 hours ago    1.02GB
    python                3.8.2        f88b2f81f83a    3 weeks ago     933MB
    
    용기 보기:
    
    docker-compose ps -a
    
      Name          Command        State          Ports
    -------------------------------------------------------------------------------------------------
    python     python3 /code/HelloWorld/m ...  Up   0.0.0.0:9100->8000/tcp
    
    State 상 태 는 Up 으로 시작 성공 을 설명 합 니 다.
    브 라 우 저 를 열 어 보 세 요:

    실행 에 성 공 했 습 니 다.여기에 자주 사용 하 는 명령 몇 개 를 열거 합 니 다.
    시작 용기:docker-compose start python
    정지 용기:docker-compose stop python
    용기 다시 시작:docker-compose restart python
    용기 삭제:docker-compose&&docker-compose rm python
    로그 보기:docker logs python
    Host 파 이 썬 명령 사용
    터미널 명령 은 파일 bash.alias 에 기 록 됩 니 다.
    로 컬 에서 python 명령 을 사용 하 는 방법 을 알려 줍 니 다.
    ~/.bashrc 열기(zsh 클 라 이언 트 의 사용 이 라면~/.zshrc)
    다음 코드 를 파일 에 추가 합 니 다:
    
    python () {
      tty=
      tty -s && tty=--tty
      docker run \
        $tty \
        --interactive \
        --rm \
        --volume $PWD:/code:rw \
        --workdir /code \
        dnmp_python python "$@"
    }
    
    설정 파일 새로 고침:source~/.bashrc(zsh 클 라 이언 트 의 사용 source~/.zshrc)
    이 때 로 컬 에서 python 명령 을 사용 할 수 있 습 니 다.시도 해 보십시오.
    
     dbnuo@localhost ~ python -V
    Python 3.8.2
    
    완전한 예제 입 니 다.제 GitHub 프로젝트 를 볼 수 있 습 니 다.BNDong/dnmp
    Docker 가 Python 프로젝트 를 어떻게 배치 하 는 지 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 Docker 배치 Python 프로젝트 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 많은 지원 을 바 랍 니 다!

    좋은 웹페이지 즐겨찾기