>  기사  >  백엔드 개발  >  배포 중에 Docker Compose에서 단일 실행 명령을 실행하는 방법은 무엇입니까?

배포 중에 Docker Compose에서 단일 실행 명령을 실행하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-08 18:57:02471검색

How to Execute a Single-Execution Command in Docker Compose During Deployment?

Docker Compose에서 단일 실행 명령 실행

Docker Compose를 사용하여 Go 웹 서버를 효율적으로 배포하려면 장애물이 발생할 수 있습니다. 배포 중에 명령을 한 번만 실행하려고 할 때. 이 특정 명령인 ./my-project -setup은 데이터베이스에 필수 정보를 추가하기 위해 프로젝트가 컴파일된 후에만 실행해야 합니다.

Docker Compose는 이러한 요구에 대한 직접적인 솔루션을 제공하지 않습니다. 하지만 컨테이너에 진입점 스크립트를 도입하면 이를 피할 수 있습니다. 이 스크립트 내에서 데이터베이스가 초기화되었는지 확인하는 검사를 구현할 수 있으며, 그렇지 않은 경우 필요한 단계를 진행할 수 있습니다.

Docker Compose에서 컨테이너가 시작되는 순서는 다음과 같다는 점에 유의하는 것이 중요합니다. 일관성이 없습니다. 이는 애플리케이션 컨테이너가 데이터베이스 컨테이너보다 먼저 시작되어 잠재적으로 데이터베이스가 부정확해질 수 있음을 의미합니다. 진입점 스크립트는 이러한 가능성을 고려하고 그에 따라 조정해야 합니다.

예를 들어 공식 WordPress 이미지의 접근 방식에서 영감을 얻을 수 있습니다. 이미지는 데이터베이스에 대한 연결 설정을 시도하고 연결 상태에 따라 필요한 초기화 절차를 수행하는 진입점 스크립트를 사용합니다. .sh#L146-L171.

또한 볼륨 마운트를 위한 "데이터 전용 컨테이너" 사용을 제거하여 Docker Compose 구성을 단순화할 수 있습니다. Docker 1.9부터 Docker는 볼륨 이름 지정을 포함한 볼륨 관리를 지원합니다. 이를 통해 데이터 전용 컨테이너를 제외하고 그에 따라 Mongo 서비스 구성을 수정할 수 있습니다.

mongo:
    image: mongo:latest
    volumes:
      - mongodata:/data/db
    ports:
      - "28001:27017"
    command: --smallfiles --rest --auth

이 수정으로 "mongodata"라는 볼륨이 생성되거나 재사용됩니다. 볼륨을 나열하거나 제거하려면 docker Volume ls 및 docker Volume rm 명령을 사용합니다. 각각.

위 내용은 배포 중에 Docker Compose에서 단일 실행 명령을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.