質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

0回答

554閲覧

docker-compose.yml で mariadb の pass を指定するときに、Unix standard pass manager を使用して指定する方法はないですか?

yosukesan

総合スコア34

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/06/09 19:06

編集2022/06/09 19:18

問題

MARIADB_ROOT_PASSWORD を Unix standard pass manager (pass) を介してパスワードを参照したいです。パスワードをファイルに記述したり、環境変数に設定せずに行う方法はないでしょうか?

エラー

  • リモートで接続
$ mariadb -u root -p -P 43010 -h 127.0.0.1 Enter password: ERROR 1045 (28000): Access denied for user 'root'@'172.24.0.1' (using password: YES) db_1 | 2022-06-09 19:14:17 5 [Warning] Access denied for user 'root'@'172.24.0.1' (using password: YES)
  • ローカルで接続
$ docker exec -it env_test_db_1 bash root@mariadb_env_test:/# mariadb -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) db_1 | 2022-06-09 19:16:08 6 [Warning] Access denied for user 'root'@'localhost' (using password: YES)

エラーコード
https://mariadb.com/kb/en/mariadb-error-codes/

試した事

.env ファイルから pass を起動してみましたが、正しいパスワードが設定できていませんでした。直接コンテナの中に入り、設定した mariadb のパスワードが使用できない事を確認しています。プロンプトが表われず master パスワードを尋ねてこないので、おそらく pass が正常に起動できていないと思います。

  • 試したファイル (bash run.sh で実行できるはず)

./docker-compose.yml

version: '3' services: db: image: mariadb hostname: mariadb_env_test ports: - 43010:3306 environment: - MARIADB_ROOT_PASSWORD=${ROOT_PASSWD}

./.env

ROOT_PASSWD=$(pass docker/db/root) # 下記も試したがだめだった。 # ROOT_PASSWD=$(pass docker/db/root | xsel --clipboard)

./run.sh

#!/bin/bash function generate_pass_if_not_exist (){ user=$1 if [ ! -f ~/.password-store/docker/db/${user}.gpg ]; then pass generate docker/db/${user} fi } function pre_hook (){ users=($@) for user in ${users[@]}; do generate_pass_if_not_exist $user done } users=(root sample_user) pre_hook ${users[@]} docker-compose up

環境

$ cat /etc/os-release | grep VER VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye yosuke@localhost:~/Data/training
$ docker inspect env_test_db_1 | grep version "com.docker.compose.version": "1.25.0"
$ docker images | grep mariadb mariadb latest ea81af801379 2 days ago 383MB
ii pass 1.7.3-2 all lightweight directory-based password manager

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問