> 백엔드 개발 > Golang > 데이터 종속 프로세스를 위해 Docker Compose에서 명령을 한 번 실행하는 방법은 무엇입니까?

데이터 종속 프로세스를 위해 Docker Compose에서 명령을 한 번 실행하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-10 01:19:02
원래의
315명이 탐색했습니다.

How to Run a Command Once in Docker Compose for Data-Dependent Processes?

Docker Compose에서 명령을 한 번 실행

소개

Docker compose를 사용하면 여러 컨테이너를 단일 단위로 관리할 수 있습니다. 그러나 명령을 한 번만 실행하는 것은 어려울 수 있으며, 특히 데이터베이스 설정과 같은 데이터 종속 프로세스를 처리할 때는 더욱 그렇습니다.

데이터 볼륨 컨테이너 이해

Compose 파일에서 MongoDB 데이터를 저장하기 위한 "mongodata" 데이터 볼륨 컨테이너. 이 컨테이너는 본질적으로 할당된 볼륨을 마운트하는 일시 중지된 컨테이너입니다.

반복 명령 실행 방지

일회 초기화를 위한 진입점 스크립트:

"-setup" 명령이 여러 번 실행되는 것을 방지하려면 "my_project" 컨테이너 내에서 진입점 스크립트를 사용할 수 있습니다. 이 스크립트는 데이터베이스가 초기화되었는지 확인하고 필요한 경우에만 설정을 수행합니다.

예:

#!/bin/sh

# Check if database is initialized
if test -f /app/initialized; then
  # Database already initialized, skip setup
  echo "Database already initialized"
else
  # Initialize database
  ./my-project -setup
  touch /app/initialized
fi

# Start the application
exec /go/bin/my_project
로그인 후 복사

볼륨 관리 활용

Docker 1.9 이상에서는 기본 볼륨 관리 기능을 제공하므로 "데이터 전용" 컨테이너가 필요하지 않습니다. 다음과 같이 작성 파일을 단순화할 수 있습니다.

services:
  mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth
로그인 후 복사

진입점 스크립트에 대한 참고 사항

진입점 스크립트에서는 데이터베이스 가용성의 잠재적인 지연을 처리하는 것이 중요합니다. 데이터베이스에 아직 액세스할 수 없는 경우 스크립트는 연결 시도를 다시 시도해야 합니다.

위 내용은 데이터 종속 프로세스를 위해 Docker Compose에서 명령을 한 번 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿