🐳

[Docker] Synology Docker에 Flask Server 배포하기

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 없는 세상에서 어떻게 살았던거지?