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 |