Docker

Entrypoint 활용하기

JM Lee 2023. 6. 1. 10:54
728x90

Entrypoint

  • docker 컨테이너가 생성될 때 기본적으로 실행 할 명령어를 지정해 주는 옵션.
  • 예를 들어, 데이터베이스를 실행시키기 위해 만든 이미지는, 컨테이너가 생성될 때 데이터베이스 서비스를 실행시켜야 하는데, 이 때 사용되는 옵션이 바로 entrypoint
  • entrypoint는 Dockerfile과 docker-compose.yml 모두 작성 가능.
  • 만약 Dockerfile, docker-compose.yml 모두 entrypoint가 작성되어 있다면 Dockerfile의 entrypoint는 무시되고 docker-compose.yml의 명령어가 우선적으로 수행됨.

 

** Dockerfile 활용하기

FROM python:3.9.15

# .pyc 파일을 생성하지 않도록 설정하기
ENV PYTHONDONTWRITEBYTECODE 1

# 파이썬 로그가 버퍼링 없이 즉각적으로 출력하도록 설정하기
ENV PYTHONUNBUFFERED 1

# /app/ 디렉토리 생성하기
RUN mkdir /app/

# /app/ 경로를 작업 디렉토리로 설정하기
WORKDIR /app/

# main.py 파일을 /app/ 경로로 복사하기
COPY ./main.py /app/

 

** docker-compose.yml

version: '3.8'

services:
  example: 
    container_name: example 
    build: . 
    entrypoint: sh -c "python3 main.py"
    restart: always

 

** 임의의 파이썬 파일을 만들어서 실행해보기

# vi 편집기로 main.py 열고 수정하기
from time import sleep
for i in range(100):
    print(f"print number : {i}")
    sleep(1)
    
# 코드 작성 후 파일 저장 후 컨테이너 생성
esc >> :wq
sudo docker compose up --build -d

# 이후 logs 명령어를 사용해 작성 한 print문이 정상적으로 출력되는지 확인
sudo docker compose logs -f

'Docker' 카테고리의 다른 글

Postgresql 컨테이너 생성하기  (0) 2023.06.01
Docker container 2개 이상 띄우기  (0) 2023.06.01
Dockerfile = Docker에서 이미지 빌드하기  (0) 2023.06.01
Docker Volume 간단히 이해  (0) 2023.06.01
Container Port Forwarding  (0) 2023.06.01