Dockerfile을 사용하여 이미지를 만들고 싶습니다. 그러나 명령은 실행할 때 사용자 입력이 필요합니다. 현재 도커가 사용자 입력을 종료하기 때문에 빌드가 성공적이지 않습니다. 나는 docker run 명령에 -i -t 옵션을 사용할 수 있지만 Dockerfile에서 실행하려고합니다. 어떻게 가능합니까?dockerfile에서 대화 형 도커를 빌드 하시겠습니까?
13
A
답변
6
expect 또는 이와 비슷한 도구를 사용해볼 수 있습니다.
가장 쉬운 방법은 autoexpect
도구를 사용하는 것입니다.이 도구를 사용하면 대화식으로 명령을 실행하고 예상 스크립트를 만들 수 있습니다.
rvmsudo 항목이 작동하지 않아서 (사용하지 않았고 너무 많은 시간을 보내고 싶지 않았기 때문에) 대신 vi
을 사용하기로 결정했습니다. 첫 방송 autoexpect
$ autoexpect vi test
이 vi
를 열리고 만들거나 파일을 편집하고 저장할 수 있습니다. vi
을 종료하면 파일 test
과 예상 스크립트 script.exp
이 표시됩니다.
그런 다음 테스트 파일을 제거하고 script.exp
을 실행할 수 있습니다. 동일한 단계를 사용하여 동일한 파일을 다시 만듭니다.
autoexpect 도구는 훌륭하지만 상황에 대해 더 많은 제어가 필요한 경우 처음부터 스크립트를 만들어야 할 수도 있습니다. 예 : 정확한 예상 입력으로 스크립트가 작동하지 않게하려면
+2
downvoters을 좋아해요, 그는 대답에 대해 잘못된 말을하지 않습니다. 건배! – ivant
관련 문제
- 1. LFS를 사용하는 TFS 대화 형 빌드 봇
- 2. Dockerfile에서 체크섬 다운로드를 표준 방식으로 수행 하시겠습니까?
- 3. Dockerfile에서 컨테이너를 빌드 할 수 없습니다.
- 4. 대화 형 배치 파일
- 5. 대화 형 인터프리터와 "같이"문자열을 출력 하시겠습니까?
- 6. Visual Studio 게시 빌드 이벤트에서 대화 형 일괄 처리 실행
- 7. 대화 형 모드에서 TFS 빌드 서비스를 시작하는 중 오류가 발생했습니다.
- 8. 도커를 시작할 수 없습니다
- 9. 대화 형 Python 세션 시뮬레이션
- 10. Dockerfile에서 빌드하는 데 필요한 비밀/개인 파일에 액세스 하시겠습니까?
- 11. 대화 형 Python - GUI 메인 루프와 대화 형 콘솔 유지
- 12. F # - 대화 형 출력을 대화 형 게시로 유지하지 마십시오.
- 13. 대화 형 파이썬에서 대화 형 파이썬의 기본 repr을 reprlib.repr로 변경합니다.
- 14. 대화 형 콘솔없이 디버그하는 방법
- 15. 브라우저에서 대화 형 3D 시각화
- 16. 대화 형 ListView
- 17. 대화 상자의 열거 형
- 18. 이동 대화 형 쉘
- 19. 대화 형 셸 개발
- 20. 대화 형 활동
- 21. Java의 대화 형 게임
- 22. 대화 형 JTable
- 23. Powershell 대화 형 출력
- 24. 대화 형 요약
- 25. WebGL 대화 형
- 26. 대화 형 웹캠
- 27. F # 대화 형 버그?
- 28. 대화 형 텍스트 영역
- 29. 대화 형 쿼리
- 30. 대화 형 JTable
예를 들어 apt-get update에 대한 사용자 입력의 경우 사용자 입력에 따라 사용자 입력에 따라 -y를 추가하여 항상 예라고 말할 수 있습니다. 그렇지 않으면, 사용자 입력을 취하여 환경 변수에 저장 한 다음 환경 변수에서 가져옵니다. –
'rvmsudo passenger-install-nginx-module'을 실행하고 있습니다. 귀하의 추천이 여기에 적용되는지 모르겠습니다. – Keeto
그런 경우 이미 설치된 모듈 (수동으로 필요한 데이터 입력)로 기본 이미지를 만든 다음 해당 새 이미지를 사용하여 Dockerfiles를 만듭니다. 실행중인 스크립트가 무인 설치를 지원하지 않는다면 해결할 수있는 일반적인 방법이 있는지 궁금합니다 ... –