본문 바로가기

Docker & Hadoop

도커(docker) entrypoint.sh 사용 방법

샘플 문서

사전에 DATABASE_URL 에 값이 설정되어 있는 상태여야 정상 동작한다.

#!/bin/bash

# Check if the required environment variables are set
if [ -z "$DATABASE_URL" ]; then
  echo "Error: DATABASE_URL is not set."
  exit 1
fi

# Check if the database is available
while ! nc -z $DATABASE_HOST $DATABASE_PORT; do
  echo "Waiting for database to start..."
  sleep 2
done

# Run database migrations
python manage.py migrate

# Start the application server
exec python manage.py runserver 0.0.0.0:8000

파일 저장 위치

  • entrypoint.sh 파일은 docker 이미지 빌드를 위한 Dockerfile 과 같은 디렉토리에 있어야 한다.
  • Dockerfile에 entrypoint 명령에 entrypoint.sh 파일이 할당되어 있어야 한다.
FROM python:3.7-slim

WORKDIR /app      # working 디렉토리를 /app로 변경

COPY . /app       # host의 현재디렉토리를 컨테이너의 /app로 복사

RUN pip install -r requirements.txt       # /app 디렉토리의 requirements.txt 를 읽어서 pip install을 실행

COPY entrypoint.sh /entrypoint.sh         # host의 entrypoint.sh 파일을 컨테이너의 /entrypoint.sh 로 복사

RUN chmod +x /entrypoint.sh               # /entrypoint.sh 에 실행 속성 부여

ENTRYPOINT ["/entrypoint.sh"]             # /entrypoint.sh 실행
  • 위와 같을 경우 entrypoint.sh 스크립트는 실행속성을 가지고 docker 이미지에 복사된다.
  • Dockerfile에 기술된 ENTRYPOINT 명령문에 의해서 docker 이미지가 container로 실행될 때 자동으로 실행된다.

'Docker & Hadoop' 카테고리의 다른 글

Docker로 Hadoop 클러스터 구축 (기본 구성)  (0) 2023.02.09