버그가 발생했거나 Docker Machine 및 Compose와 함께 Windows에서 변수 대체에 대해 제대로 문서화되지 않은 것이 있는지 궁금합니다 (고정 된 버전의 docker가 1.11.1).변수 고정 대체가 Windows 10에서 작동하지 않음
나는이처럼 보이는 YML 파일의 "최대 고정 표시기-구성"명령을 실행하는 경우 :
volumes:
- ${FOOBAR}/build/:/usr/share/nginx/html/
을 그리고 고정 표시기의 작성을 존재하지 않는이 변수가 올바르게에 대해 불평 할 것이다 :
The foobar variable is not set. Defaulting to a blank string.
그러나, 나는 기존의 환경 변수로 변경하는 경우 : 프로 후
volumes:
- ${PROJECT_DIR}/build/:/usr/share/nginx/html/
그것은하지 않습니다 페를 리 (당신이 도달 할 수없는 메시지가 호스트되어 줄 것이다 nginx를 컨테이너에 액세스하려고) 컨테이너를 시작하고 다음 오류가 표시
ERROR: for nginx rpc error: code = 2 desc = "oci runtime error: could not synchronise with container process: not a directory"
을 나는 그것이 출력 올바른 경로를합니다 도커 빠른 터미널에 echo 명령을 실행하는 경우 환경 변수에서 설정 한 값입니다. $ {PROJECT_DIR}을 환경 변수 값으로 바꾸면 컨테이너가 올바르게 실행됩니다.
공식 nginx 이미지 대신 공식 PHP 이미지에 환경 변수를 사용하려고하면 같은 유형의 오류 메시지가 나타납니다. 두 경우 모두 $ {PROJECT_DIR} 텍스트를 환경 변수의 내용으로 대체하면 docker compose 파일이 작동합니다.
버그입니까? 아니면 누락 되었습니까?
volumes:
- ${PROJECT_DIR}:/usr/share/nginx/html/
의 nginx : 일부 난 다음이 (로컬 파일의 전체 경로를 포함)를 사용하는 경우 오류 메시지없이 올바르게 시작하는 용기를 얻을 관리했습니다에 대한 일 처리 후
컨테이너는 이제 더 이상 파일을 찾을 수는 없지만 작동 중입니다. 변수를 포함하는 경로로 변수를 바꾸면 파일을 다시 찾을 수 있습니다.
위의 동작이 일관되지 않습니다. 대체 할 두 번째 환경 변수를 추가하면 oci 런타임 오류가 발생합니다. 내가 두 번째 변수를 제거하고 첫 번째 변수를 제거했을 때 다시 작업하기 시작했을 때이 변수를 유지합니다. 그 후 갑자기 파일을 찾지 않고 $ {PROJECT_DIR}/build /을 수락했다.
nginx 컨테이너에 대한 bash 세션을 시작하면 볼륨의 마운트 지점에 파일이 없음을 알 수 있습니다.
나는 도커가하고있는 일과 내게 기대되는 것을 실제로 잃어 버렸습니다. 특히 compose 파일의 변수가 무엇을 확장하는지 알지 못합니다.
안녕하세요 .. 'FOOBAR =/yourpath docker-compose'및이 'export FOOBAR =/yourpath && docker-compose up' 두 가지를 모두 시도해 보셨습니까? –
당신은'PROJECT_DIR'의 실제 값을 보여줄 수 있습니까? – vitr
및 도커 버전 – vitr