ホームページ  >  に質問  >  本文

コマンドからのパスワードを .env から docker 内の mysql に渡します

私は基本的に 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.

P粉521748211P粉521748211207日前362

全員に返信(2)返信します

  • P粉403804844

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

    2 つの状況が考えられます。

    1. env ファイルと docker run コマンドのキー名を確認してください
    2. マッピング先の env ファイルへのパスを確認します。

    返事
    0
  • P粉464082061

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

    シェルがローカル変数を展開しないようにする必要があります(一重引用符またはエスケープ $)

    これはコンテナ シェルに渡され、そこで展開される必要があります:

    リーリー

    返事
    0
  • キャンセル返事