m.yoshida
2024年3月25日 18時41分
armadillo a6eのコンテナでdebian のイメージファイルの中にpostgresをインストールし、データを保持し続けられるようにする方法を教えてください。
/etc/atmark/containers/*.conf のadd_volumesに追加すれば動作するかと思いましたが、エラーが出力されました。
お手数ですが、ご確認いただけますと幸いです。
■Dockerfile
#debian FROM docker.io/arm32v7/debian:bullseye RUN apt-get update -y RUN apt-get upgrade -y #systemd RUN apt-get install -y systemd RUN ln -s /lib/systemd/systemd /sbin/init #postgresSQL RUN apt-get install -y postgresql postgresql-contrib libpq-dev
■/etc/atmark/containers/*.conf
add_volumes /var/app/volumes/postgres:/var/lib/postgresql/13/main
■error
Starting PostgreSQL 13 database server: mainError: Data directory /var/lib/postgresql/13/main must not be owned by root ... failed! failed!
コメント
m.yoshida
福田様
ありがとうございます。
> https://armadillo.atmark-techno.com/blog/10899/12984
初歩的な質問させていただきます。
コンテナをデータを保存するために、”add_volumes /var/app/volumes/pgsql/:/data/pgsql”以外にも、「postgresql実行のために必要なファイルをコピーする」などの処理を行えば、以下のエラーが解消される認識でよろしいでしょうか?
Starting PostgreSQL 13 database server: mainError: Data directory /var/lib/postgresql/13/main must not be owned by root ... failed! failed!
また、上記のURLの場合postgresのOSSをインストールして、設定されてますが、今回のようなdebianOSにpostgresをインストールした際も同じような手法が使えるという認識でよいでしょうか?
お手数をおかけしますが、ご確認お願い致します。
at_takuma.fukuda
福田です。
当該ブログ記事にも書いているのですが、postgresqlは起動時にデータ保存先に必要なファイルが存在しないと正常に起動しません。
このため、当該ブログでは一度コンテナを作成して、それらの必要なファイルをコンテナからホストOSに予めコピーしておき、
改めて開発用のコンテナを再作成するという手順を踏んでいます。
また、エラーメッセージを見るとマウントしているディレクトリのアクセス権限の問題のようにも見えます。
Debianコンテナへのpostgresqlのインストールについてはこちらでは試していないため、具体的なアドバイスは出来ないのですが、
まずはadd_volumesによるマウントを行わない状態で正常に起動するかを確認した上で、正常に起動しない原因を切り分けながら進めるのが良いのではと思われます。
at_takuma.fukuda
2024年3月26日 10時45分
福田です。
以前、Armadillo Base OS上にPostgreSQL専用コンテナを構築することを試しました。
こちらをご参考いただけますと幸いです。
https://armadillo.atmark-techno.com/blog/10899/12984