私は基本的に docker について何も知りません。 bash についてもそれほど詳しくありません。それで:###
私が取り組んでいる Laravel プロジェクトの Readme ファイルには、ホスト マシンにあるファイルからクエリを送信することでローカルの MySQL Docker イメージにデータを設定する方法を示すコマンドがあります。リーリー
私がやりたいのは、README からパスワードを「非表示」にし、.env ファイルから読み取らせることです。
だから、次のようなことをしたいです:
docker ... printenv
をテストしましたが、ファイル内の変数が表示されます。しかし、echo の 1 つは空白行を出力します:
docker ... echo $DB_PASSWORD で、それを使用して MySQL コマンドを実行すると、「ユーザー 'root'@'localhost のアクセスが拒否されました」というメッセージが表示されます。 「」「」
MySQL コマンドを「直接」実行してみました:
docker ... mysql ... < file.sql
docker bash -c "mysql .. ." < file.sql.
2 つの状況が考えられます。
シェルがローカル変数を展開しないようにする必要があります(一重引用符またはエスケープ
$
)これはコンテナ シェルに渡され、そこで展開される必要があります:
リーリー