コマンドからのパスワードを .env から docker 内の mysql に渡します
P粉521748211
P粉521748211 2024-03-26 09:38:42
0
2
408

私は基本的に 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粉521748211
P粉521748211

全員に返信(2)
P粉403804844

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

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

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

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

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート