저는 기본적으로 docker에 대해 아무것도 모릅니다. bash에 대해서도 그다지 많지 않습니다. 그래서:
내가 작업 중인 Laravel 프로젝트의 추가 정보 파일에는 호스트 시스템에 있는 파일에서 쿼리를 보내 로컬 MySQL 도커 이미지에 일부 데이터를 채우는 방법을 보여주는 명령이 있습니다.
으아아아내가 원하는 것은 README에서 비밀번호를 "숨기고" .env
파일
그래서 저는 다음과 같은 일을 하고 싶습니다:
으아아아테스트했는데 docker ... printenv
确实显示了文件中的变量。但是回显其中一个会输出一个空行: docker ... echo $DB_PASSWORD
이를 사용하여 MySQL 명령을 실행하면 "사용자 'root'@'localhost'에 대한 액세스가 거부되었습니다."라는 메시지가 나타납니다.
MySQL 명령을 "직접" 실행해 보았습니다: docker ... mysql ... < file.sql
,也尝试“间接”运行: docker bash -c "mysql ..." < file.sql
. p>
두 가지 상황이 있을 수 있습니다.
셸이 지역 변수를 확장하는 것을 방지해야 합니다(작은따옴표 또는 이스케이프
$
를 통해)이것은 컨테이너 셸로 전달되어 거기에서 확장되어야 합니다.
으아악