아래내용은 Dockerfile을 만드는 것입니다.
Kubernetes나 Jenkins 등 에서 배포파이프라인으로 구성하기 위해 많이 사용하는 구조입니다.
매번 느끼는 거지만 이미지 빌드가 잘안되거나 구성요소 문제로 나중에 삽질하는 경우가 많습니다.
Kubernets 혹은 Jenkins로 운영하기전에 도커 호스트 서버에서 수동으로 빌드해서 정상적으로 서비스 되는지 체크하고 진행하기 바랍니다.
그런 의미에서 별도로 작성해서 올립니다.
1) 파이썬 웹사이트 프로젝트 Github에서 Clone하기
아래 프로젝트는 flask를 사용해서 Client IP와 Server IP를 체크할 수 있는 페이지 입니다.
사용법 등은 해당 프로젝트의 readme.txt에 있으니 참고바랍니다.
Git 주소 : https://github.com/armyost/testPagePy.git
armyost/testPagePy
showing basic information of server's IP and so on. Python - armyost/testPagePy
github.com
#git clone https://github.com/armyost/testPagePy.git
2) 파이썬 도커파일 및 기타 만들기
위치는 testPagePy 프로젝트 안에다 Dockerfile을 vi에디터로 만듭니다.
그리고 testPagePy 프로젝트 안에다 requirements.txt를 vi에디터로 만듭니다.
Dockerfile --------------------------------------------------
# python:3.8의 이미지로 부터
FROM python:3.8
# 제작자 및 author 기입
LABEL maintainer="armyost@naver.com"
# 해당 디렉토리에 있는 모든 하위항목들을 '/app/server`로 복사한다
COPY . /app/server
# image의 directory로 이동하고
WORKDIR /app/server
# Make port 80 available to the world outside this container
EXPOSE 80
# 필요한 의존성 file들 설치
RUN pip3 install -r requirements.txt
# container가 구동되면 실행
ENTRYPOINT ["python", "run.py"]
------------------------------------------------------------------
requirements.txt -----------------------------------------------
flask
------------------------------------------------------------------
최종적으로 구성요소가 아래와 같이 있어야 합니다.
3) 빌드 수행
#docker build -t python_server .
4) 빌드된 이미지 확인 및 run
#docker image ls
docker run -d -p 2222:80 --name=jpkim_python_server python_server
-d : background로 container 실행
-p : local환경에서의 2222번 port를 container 환경의 8080으로 포워딩
--name : container의 이름
마지막은 image 이름
5) 서비스를 체크해봅니다.
포트가 2222번이 포워딩 되어 있으니 Docker호스트:2222/get_my_ip로 호출해 봅니다.
'PaaS > CI CD' 카테고리의 다른 글
(Jenkins, Kubernetes) Kubernetes Cluster에 Jenkins Master 올리기 (0) | 2021.07.20 |
---|---|
(Jenkins, Github, Docker) Github에서 불러와 Docker빌드 (0) | 2021.07.10 |
(Jenkins) Jenkins 설치하기 (0) | 2021.07.04 |
배포전략 - Rolling, Blue/Green, Canary 배포 (0) | 2021.06.28 |
Git 서버 및 클라이언트 설치 (0) | 2021.05.12 |