docker-compose.yml 파일에는 호스트 시스템에서 파일을 검색할 수 있도록 파일을 바인드 마운트에 복사해야 하는 진입점이 있습니다.
version: '3.9'
services:
my-service:
....
entrypoint: cp /foo/*.txt /data
volumes:
- ./data:/data
하지만 이 컨테이너를 실행할 때마다 로그에는 다음이 표시됩니다 cp: cannot stat '/foo/*.txt': No such file or directory
. 반면에 전체 파일 이름을 입력하면 제대로 작동합니다.
나도 시도했지만 entrypoint: ['cp', '/foo/*.txt', '/data']
같은 오류가 발생했습니다.
인용하다:https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact
와일드카드를 사용하여 Compose 서비스에서 파일을 복사하는 방법은 무엇입니까?
정보:
docker --version
Docker version 20.10.21, build baeda1f
cat /etc/lsb-release | grep DESCRIPTION
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
답변1
이와 같은 문자는 *
셸에서 해석되므로 이를 처리하려면 셸을 호출해야 합니다(예: sh -c 'cp /foo/*.txt /data'
). 그렇지 않으면 이러한 인수가 에 전달되어 exec
이를 어떻게 처리할지 알 수 없으며 *
설명하는 오류가 발생합니다.