.env의 명령에서 docker 내부의 mysql로 ​​비밀번호를 전달합니다.
P粉521748211
P粉521748211 2024-03-26 09:38:42
0
2
438

저는 기본적으로 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粉521748211
P粉521748211

모든 응답(2)
P粉403804844

두 가지 상황이 있을 수 있습니다.

  1. env 파일 및 docker run 명령에서 키 이름을 확인하세요
  2. 매핑하려는 env 파일의 경로를 확인하세요.
P粉464082061

셸이 지역 변수를 확장하는 것을 방지해야 합니다(작은따옴표 또는 이스케이프 $를 통해)

이것은 컨테이너 셸로 전달되어 거기에서 확장되어야 합니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿