1. requirements.txt 작성
venv 환경에서를 입력해 의존 패키지를 뽑아낸다.
pip freeze > requirements.txt
PowerShell
복사
2. 기본 배포 Dockerfile
FROM python:3.9 #Python 버전을 작성한다.
WORKDIR /dir #디렉토리 이름을 작성한다.
COPY . . #모든 파일을 WORKDIR로 복사한다.
RUN pip install -r requirements.txt #requirements.txt에 있는 패키지를 설치한다.
EXPOSE 5000 #이 컨테이너에서 노출할 포트를 정해주고 (컨테이너 포트)
CMD python ./app.py #python 으로 실행한다.
Docker
복사
3. git 레포지터리 불러와서 배포 Dockerfile
FROM python:3.9 #Python 버전을 작성한다.
WORKDIR /dir #디렉토리 이름을 작성한다.
COPY . . #모든 파일을 WORKDIR로 복사한다.
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install git -y
#Python 이미지의 경우 git이 이미 설치되어있어서 위의 세줄을 치지 않아도 됩니다.
RUN git clone https://github.com/annonymous/annonymous.git ./
#git 레포지터리를 불러오고
RUN pip install -r requirements.txt
#패키지를 설치한다.
EXPOSE 5000
CMD python ./app.py
Docker
복사
4. 실행
Synology 서버에 ssh로 접속한다. root 계정으로 접속해야 Docker 오류가 나지 않는다.
ssh root@시놀로지계정명.synology.com -p 22
PowerShell
복사
빌드
docker build -t 이미지명:latest ./
PowerShell
복사
빌드를 로컬에서 할 경우 Dockerhub 등을 통해 push pull하는 과정을 거쳐야 한다.
나는 파일을 Synology에 두고 Synology에서 빌드하였다.
실행
docker run -p 호스트포트:컨테이너포트 이미지명
PowerShell
복사
5. 접속
https://시놀로지계정명.synology.com:호스트포트
PowerShell
복사
Docker 없는 세상에서 어떻게 살았던거지?