찾다

 >  Q&A  >  본문

.env의 명령에서 docker 내부의 mysql로 ​​비밀번호를 전달합니다.

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

모든 응답(2)나는 대답할 것이다

  • P粉403804844

    P粉4038048442024-03-27 00:47:43

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

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

    회신하다
    0
  • P粉464082061

    P粉4640820612024-03-27 00:15:08

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

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

    으아악

    회신하다
    0
  • 취소회신하다