샘플 문서
사전에 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 |
---|