私は/etc/prometheus/prometheus.yml
Ansibleを介してprom / prometheusドッカーイメージに(デフォルト)設定ファイルを提供するためにNFSマウントを使用しています。コンテナをデプロイすると、コンテナログに次のエラーが表示され、数秒後にコンテナが再起動されます。
level=error ts=2020-10-28T16:01:04.432Z caller=main.go:290 msg="Error loading config (--config.file=/etc/prometheus/prometheus.yml)" err="open /etc/prometheus/prometheus.yml: permission denied"
Dockerホスト(Raspberry Pi 4)に搭載されているファイルシステムに移動し、ファイルをタッチしてコンテナを起動したprometheus.yml
ユーザーとして読むことができます。
これは私のプレイブックの関連タスクです。問題は、CLI でコンテナをデプロイする場合も同じです。いいえリモートファイルシステムは、atのプレイブックにマウントされ、/mnt/prometheus
atのコンテナにボリュームとして渡されます。/etc/prometheus
docker run -p 9090:9090 -v /mnt/prometheus:/etc/prometheus prom/prometheus
プロメテウス/作業/main.yml(become: yes
キャラクターを呼び出すプレイブックに設定)
- name: "Create mountpoint"
file:
path: "{{ prometheus_mount_path }}"
state: directory
mode: 0777
owner: root
group: users
- name: "Mount nfs drive for prometheus filesystem"
mount:
path: "{{ prometheus_mount_path }}"
src: "{{ nfs_server }}:{{ prometheus_nfs_path }}"
state: mounted
fstype: nfs
- name: "Create prometheus.yml in mountpoint from template"
template:
src: prometheus.yml.j2
dest: "{{ prometheus_mount_path }}/prometheus.yml"
- name: "Deploy prometheus container"
docker_container:
name: prometheus
image: prom/prometheus:latest
restart_policy: always
state: started
network_mode: host
hostname: prometheus
# exposed_ports: 9090
published_ports: 9090:9090
user: 995:1002
mounts:
volumes:
- "{{ prometheus_mount_path }}:/etc/prometheus"
comparisons:
'*': ignore
env: strict
permission denied
コンテナで問題の原因や解決策を知っていますか?
編集する:NFSマウントの代わりにコンテナと共有するローカルディレクトリをdockerに提供してこれをテストしました。これはコンテナと正常に共有され、コンテナが起動しました。 NFSの問題を指摘していますが、まだ把握していません。
答え1
私の解決策を見つけましたここに投稿された回答。もっと詳しく私のブログ