Docker 는 Python 프로젝트 의 실현 에 대한 상세 한 설명 을 어떻게 배치 합 니까?
이 편 에서 저 는 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
환경 변수 설정
.env 파일 을 열 고 다음 내용 을 추가 합 니 다.
#
# python
#
PYTHON_VERSION=3.8.2
PYTHON_PORT=9100
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/dnmpDocker 가 Python 프로젝트 를 어떻게 배치 하 는 지 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 Docker 배치 Python 프로젝트 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
첫 번째 Docker for Mac참고 , 나는 옆에 있는 Mac에 Docker를 설치하고 컨테이너를 세워 보고 싶다. Docker Hub를 처음 사용할 때는 계정을 만들어야 합니다. Docker.dmg을 실행하면 Docker가 설치됩니다. Dock...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.