Dozzle: update to 11.0.0
- контейнер запускается от своего пользователя, доступ к docker.sock через дополнительную группу docker - добавлен data/ под /data, он же попадает в backup-targets
This commit is contained in:
@@ -1,10 +1,18 @@
|
|||||||
services:
|
services:
|
||||||
dozzle_app:
|
dozzle_app:
|
||||||
image: amir20/dozzle:v10.10.0
|
image: amir20/dozzle:v11.0.0
|
||||||
container_name: dozzle_app
|
container_name: dozzle_app
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
# От своего пользователя, чтобы содержимое data/ не оказалось рутовым.
|
||||||
|
# Доступ к docker.sock при этом даёт только дополнительная группа docker:
|
||||||
|
# сокет принадлежит root:docker, а образ собран из scratch, поэтому в
|
||||||
|
# group_add идёт числовой gid — /etc/group внутри контейнера нет.
|
||||||
|
user: "{{ app_owner_uid }}:{{ app_owner_gid }}"
|
||||||
|
group_add:
|
||||||
|
- "{{ dozzle_docker_gid }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
|
- "{{ data_dir }}:/data"
|
||||||
networks:
|
networks:
|
||||||
- "web_proxy_network"
|
- "web_proxy_network"
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
app_owner_uid: 1016
|
app_owner_uid: 1016
|
||||||
app_owner_gid: 1017
|
app_owner_gid: 1017
|
||||||
base_dir: "{{ (application_dir, app_name) | path_join }}"
|
base_dir: "{{ (application_dir, app_name) | path_join }}"
|
||||||
|
data_dir: "{{ (base_dir, 'data') | path_join }}"
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: "Create user and environment"
|
- name: "Create user and environment"
|
||||||
@@ -27,6 +28,27 @@
|
|||||||
mode: "0770"
|
mode: "0770"
|
||||||
loop:
|
loop:
|
||||||
- "{{ base_dir }}"
|
- "{{ base_dir }}"
|
||||||
|
- "{{ data_dir }}"
|
||||||
|
|
||||||
|
- name: "Create backup targets file"
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "{{ base_dir }}/backup-targets"
|
||||||
|
content: |
|
||||||
|
{{ data_dir }}
|
||||||
|
owner: "{{ app_user }}"
|
||||||
|
group: "{{ app_user }}"
|
||||||
|
mode: "0640"
|
||||||
|
|
||||||
|
- name: "Grab docker group info"
|
||||||
|
ansible.builtin.getent:
|
||||||
|
database: "group"
|
||||||
|
key: "docker"
|
||||||
|
|
||||||
|
# getent_group отдаёт поля строки /etc/group без имени группы,
|
||||||
|
# то есть [пароль, gid, участники] — gid лежит под индексом 1.
|
||||||
|
- name: "Store docker group id"
|
||||||
|
ansible.builtin.set_fact:
|
||||||
|
dozzle_docker_gid: "{{ ansible_facts.getent_group['docker'][1] }}"
|
||||||
|
|
||||||
- name: "Copy docker compose file"
|
- name: "Copy docker compose file"
|
||||||
ansible.builtin.template:
|
ansible.builtin.template:
|
||||||
|
|||||||
Reference in New Issue
Block a user