Help:XSvacer:Webide:SvacerAsDockerContainer: Difference between revisions
M.vinogradov (talk | contribs) mNo edit summary |
(add note about 12-0-0 version) |
||
| (4 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
= | {{Note|type=reminder|text=Начиная с версии 12-0-0 WebIDE уже настроена в предоставляемом нами докер-образе и [https://svacer.ispras.ru/extra/docker-compose.yml docker-compose файле]}} | ||
= Поддержка функциональности [[Help:XSvacer:Webide|webide]], когда Svacer развёрнут в docker-контейнере = | |||
На данный момент функциональность запуска Theia IDE по умолчанию настроена на запуск Svacer с помощью исполняемого файла, "рядом" с docker'ом. | На данный момент функциональность запуска Theia IDE по умолчанию настроена на запуск Svacer с помощью исполняемого файла, "рядом" с docker'ом. | ||
Для поддержки функциональности | Для поддержки функциональности webide, когда Svacer развёрнут в docker-контейнере, необходимо решить следующие задачи: | ||
# Предоставить docker-контейнеру Svacer доступ к управлению контейнерами IDE; | # Предоставить docker-контейнеру Svacer доступ к управлению контейнерами IDE; | ||
# Активация функциональности webide в docker-контейнере Svacer; | |||
# Организация сетевого доступа между контейнером Svacer и контейнерами IDE; | # Организация сетевого доступа между контейнером Svacer и контейнерами IDE; | ||
# Настройка доступа к общему хранилищу с исходными файлами для контейнера Svacer и контейнеров IDE; | # Настройка доступа к общему хранилищу с исходными файлами для контейнера Svacer и контейнеров IDE; | ||
| Line 13: | Line 15: | ||
{{Note|type=info|text=Приведённые решения основаны на развёртывании Svacer с помощью файла [https://svacer.ispras.ru/extra/docker-compose.yml docker-compose.yml]}} | {{Note|type=info|text=Приведённые решения основаны на развёртывании Svacer с помощью файла [https://svacer.ispras.ru/extra/docker-compose.yml docker-compose.yml]}} | ||
== Предоставление контейнеру Svacer доступа к управлению контейнерами IDE == | == Предоставление контейнеру Svacer доступа к управлению контейнерами IDE == | ||
| Line 46: | Line 24: | ||
Один из способов подключения к API docker'а является использование socket-файла <code>/var/run/docker.sock</code>. Чтобы Svacer получил доступ к этому файлу, его необходимо примонтировать к docker-контейнеру: | Один из способов подключения к API docker'а является использование socket-файла <code>/var/run/docker.sock</code>. Чтобы Svacer получил доступ к этому файлу, его необходимо примонтировать к docker-контейнеру: | ||
<pre | <pre> | ||
services: | services: | ||
... | ... | ||
| Line 57: | Line 35: | ||
</pre> | </pre> | ||
== Изменение настроек Svacer | == Изменение настроек Svacer (svacer.cfg) == | ||
Дальнейшие шаги связаны с изменением настроек Svacer. В случае, когда Svacer развёрнут в docker-контейнере, это можно сделать следующим образом: | Дальнейшие шаги связаны с изменением настроек Svacer. В случае, когда Svacer развёрнут в docker-контейнере, это можно сделать следующим образом: | ||
# Создать конфигурационный файл <code>svacer.cfg</code>; | # Создать конфигурационный файл <code>svacer.cfg</code>; | ||
# Перенести настройки функциональности webide; | |||
# Примонтировать файл к рабочей директории docker-контейнера Svacer; | # Примонтировать файл к рабочей директории docker-контейнера Svacer; | ||
# Перезапустить контейнер Svacer; | # Перезапустить контейнер Svacer; | ||
Чтобы примонтировать <code>svacer.cfg</code> к контейнеру Svacer нужно в файл <code>docker-compose. | Чтобы примонтировать <code>svacer.cfg</code> к контейнеру Svacer нужно в файл <code>docker-compose.yml</code> добавить строку: | ||
<pre | <pre> | ||
services: | services: | ||
... | ... | ||
| Line 77: | Line 56: | ||
</pre> | </pre> | ||
=== Перенос настроек функциональности <code>webide</code> в <code>svacer.cfg</code> === | === Перенос настроек функциональности webide в <code>svacer.cfg</code> === | ||
Скопировать секцию с [[Help:XSvacer:Webide#Конфигурация_по_умолчанию|настройками по умолчанию]] в <code>svacer.cfg</code> | |||
== Активация функциональности webide == | |||
Варианты активации функциональности webide: | |||
* Указать флаг <code>--xsvacer.features webide</code> при запуске Svacer; | |||
* В конфигурационном файле <code>svacer.cfg</code> добавить значение <code>webide</code> в список <code>/xsvacer/features</code>; | |||
=== Решение === | |||
Второй вариант активации функциональности является более предпочтительным. В <code>svacer.cfg</code> необходимо добавить следующую настройку: | |||
<pre> | |||
xsvacer: | |||
features: | |||
- webide # активация функциональности webide | |||
... | |||
</pre> | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
<div style="font-weight:bold;line-height:1.6;">Альтернативное решение с использованием флага <code>--xsvacer.features webide</code></div> | |||
<div class="mw-collapsible-content"> | |||
В [https://svacer.ispras.ru/extra/docker-compose.yml docker-compose.yml] используется docker-образ Svacer, собранный на основе [[Dockerfile]]. В данном файле содержится инструкция запуска Svacer | |||
<pre> | |||
CMD /svacer/bin/svacer-server run --store $STORE --pg $SVACER_PG_URL | |||
</pre> | |||
Для активации функциональности IDE необходимо переопределить аргументы инструкции <code style="white-space: pre;">CMD</code> в файле <code>docker-compose.yml</code>: | |||
<pre> | |||
services: | |||
... | |||
svacer: | |||
... | |||
command: /bin/sh -c '/svacer/bin/svacer-server run --store $$STORE --pg $${SVACER_PG_URL} --xsvacer.features webide' | |||
</pre> | |||
{{Note|type=info|text=Проверить актуальные значения аргументов инструкции <code>CMD</code> docker-образа можно с помощью команды <code>docker image inspect {имя образа}</code>}} | |||
</div></div> | |||
== Организация сетевого доступа между контейнером Svacer и контейнерами IDE == | == Организация сетевого доступа между контейнером Svacer и контейнерами IDE == | ||
В текущей реализации при запуске docker-контейнер IDE публикует внутренний порт web-приложения Theia IDE на случайный порт всех сетевых интерфейсов (0.0.0.0) docker-хоста. Svacer хранит информацию на каком | В текущей реализации при запуске docker-контейнер IDE публикует внутренний порт web-приложения Theia IDE на случайный порт всех сетевых интерфейсов (0.0.0.0) docker-хоста. Svacer хранит информацию на каком порту хоста развёрнуты соответствующие инстансы IDE и проксирует запросы к ним. | ||
Необходимо организовать доступ контейнера Svacer к портам docker-хоста, на которых опубликованы контейнеры IDE. | Необходимо организовать доступ контейнера Svacer к портам docker-хоста, на которых опубликованы контейнеры IDE. | ||
| Line 93: | Line 111: | ||
# Изменить настройку публикации портов контейнеров IDE на значение ip-адреса <code>docker0</code>. | # Изменить настройку публикации портов контейнеров IDE на значение ip-адреса <code>docker0</code>. | ||
''' Определение ip-адреса | '''Определение ip-адреса docker0''' | ||
На docker-хосте выполнить команду <code>ip a</code>: | На docker-хосте выполнить команду <code>ip a</code>: | ||
<pre | <pre> | ||
$ ip a | $ ip a | ||
... | ... | ||
| Line 106: | Line 124: | ||
</pre> | </pre> | ||
В данном случае искомый ip-адрес | В данном случае искомый ip-адрес — <code>172.17.0.1</code> | ||
''' Изменение настроек публикации портов контейнеров IDE ''' | ''' Изменение настроек публикации портов контейнеров IDE ''' | ||
Настройки публикации порта контейнера IDE заданы в [ | Настройки публикации порта контейнера IDE заданы в [[Help:XSvacer:Webide#Конфигурация_запуска_Theia_IDE|конфигурации запуска IDE]]. Настройки по умолчанию должны быть предварительно [[Help:XSvacer:Webide:SvacerAsDockerContainer#Перенос_настроек_функциональности_webide_в_svacer.cfg|перенесены]] в svacer.cfg. | ||
В файле <code>svacer.cfg</code> нужно добавить параметр <code>hostip</code> со значением ip-адреса интерфейса <code>docker0</code>: | В файле <code>svacer.cfg</code> нужно добавить параметр <code>hostip</code> со значением ip-адреса интерфейса <code>docker0</code>: | ||
<pre | <pre> | ||
xsvacer: | xsvacer: | ||
webide: | webide: | ||
| Line 136: | Line 154: | ||
== Настройка доступа к общему хранилищу с исходными файлами для контейнера Svacer и контейнеров IDE == | == Настройка доступа к общему хранилищу с исходными файлами для контейнера Svacer и контейнеров IDE == | ||
При запуске IDE для просмотра снимка, Svacer экспортирует исходный код снимка в папку на docker-хосте. Далее эта папка монтируется | При запуске IDE для просмотра снимка, Svacer экспортирует исходный код снимка в папку на docker-хосте. Далее эта папка монтируется в контейнер IDE, к пути <code>/home/project</code>, который использует Theia IDE в качестве папки проекта. | ||
При развёртывании Svacer в docker-контейнере необходимо настроить экспорт исходников в папку, которая может быть примонтирована к контейнеру IDE. | При развёртывании Svacer в docker-контейнере необходимо настроить экспорт исходников в папку, которая может быть примонтирована к контейнеру IDE. | ||
| Line 142: | Line 160: | ||
=== Решение === | === Решение === | ||
Путь к корневой папке, в которую будут экспортироваться исходники снимков, задаётся в конфигурационном параметре [ | Путь к корневой папке, в которую будут экспортироваться исходники снимков, задаётся в конфигурационном параметре [[Help:XSvacer:Webide#Базовые_параметры_конфигурации_запуска|sourcesroot]]. Так как этот же параметр используется для настройки пути к корневой папке на docker-хосте, которая будет примонтирована к контейнеру IDE, то пути к папке с исходным кодом снимков должны совпадать в контейнере Svacer и на docker-хосте. | ||
''' Пример конфигурации ''' | ''' Пример конфигурации ''' | ||
'''svacer.cfg''' | |||
<pre | <pre> | ||
xsvacer: | xsvacer: | ||
webide: | webide: | ||
| Line 158: | Line 176: | ||
</pre> | </pre> | ||
'''docker-compose.yml''' | |||
<pre | <pre> | ||
services: | services: | ||
... | ... | ||
| Line 167: | Line 185: | ||
volumes: | volumes: | ||
... | ... | ||
- /data/snapshot-sources:/data/snapshot-sources | - /data/snapshot-sources:/data/snapshot-sources # привязка с разрешением на запись | ||
... | ... | ||
</pre> | </pre> | ||
== Примеры файлов с описанными изменениями == | |||
Ниже приведены версии конфигурационных файлов, с изменениями которые были описаны выше. Изменённые строки содежат комментарии. | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
<div style="font-weight:bold;line-height:1.6;">svacer.cfg</div> | |||
<div class="mw-collapsible-content"> | |||
{{Note|type=info|text=Ниже приведён файл <code>svacer.cfg</code> содержащий только секцию <code>xsvacer</code>. Если файл <code>svacer.cfg</code> создан и содержит другие настройки, то приведённые ниже настройки должны быть перенесены в существующий файл}} | |||
<pre> | |||
xsvacer: | |||
features: | |||
- webide # активация функциональности webide | |||
webide: | |||
theia: | |||
1-46-0: &1-46-0 | |||
disabled: true | |||
order: 0 | |||
name: Theia blueprint web IDE (v1.46.0) | |||
sourcesroot: /data/snapshot-sources # путь к базовой папке с исходным кодом снимков | |||
sarif: | |||
filenametemplate: "warnings.sarif" | |||
commenttemplate: "{{if trim .Text}}`[{{.CreateTs.Local.Format \"02.01.2006 15:04\"}}] {{.CreatedBy}}:`\n\n{{trim .Text}}{{end}}" | |||
healthcheck: | |||
starttoreadyretries: 10 | |||
starttoreadyperiod: 200ms | |||
docker: | |||
hostid: default | |||
containernametemplate: "theia-1-46-{{.StartArgs.SnapshotID}}" | |||
image: | |||
name: theia-blueprint | |||
tag: 1.46.0.sarif.clang.10.0.0 | |||
sourcetype: file | |||
sourcefileurl: https://svacer.ispras.ru/docker/images/theia-blueprint.1.46.0.sarif.clang.10.0.0.tar.gz | |||
containerconfiglabels: | |||
- "com.docker.compose.project": svacer | |||
container: | |||
config: | |||
env: | |||
- THEIA_WEBVIEW_EXTERNAL_ENDPOINT={{hostname}} | |||
hostconfig: | |||
autoremove: true | |||
portbindings: | |||
"3000/tcp": | |||
- hostport: 0 | |||
hostip: 172.17.0.1 # ip-адрес интерфейса хоста docker0 | |||
manager: | |||
type: default | |||
default: | |||
<<: *1-46-0 | |||
order: 0 | |||
disabled: false | |||
</pre> | |||
{{Note|type=info|text=Проверить актуальные значения аргументов инструкции <code>CMD</code> docker-образа можно с помощью команды <code>docker image inspect {имя образа}</code>}} | |||
</div></div> | |||
</div></div> | |||
<div class="toccolours mw-collapsible mw-collapsed"> | |||
<div style="font-weight:bold;line-height:1.6;">docker-compose.yml</div> | |||
<div class="mw-collapsible-content"> | |||
{{Note|type=info|text=Изменены внесены в файл [https://svacer.ispras.ru/extra/docker-compose.yml docker-compose.yml]}} | |||
<pre> | |||
services: | |||
postgresql: | |||
image: postgres:17.0-bullseye | |||
container_name: svacer-postgres | |||
restart: always | |||
shm_size: 1g | |||
environment: | |||
- POSTGRES_DB=svace | |||
- POSTGRES_USER=svace | |||
- POSTGRES_PASSWORD=svace | |||
- POSTGRES_ROOT_PASSWORD=svace | |||
volumes: | |||
- svacer-postgres:/var/lib/postgresql/data | |||
networks: | |||
svacer: | |||
healthcheck: | |||
test: pg_isready -U svace | |||
interval: 8s | |||
start_period: 16s | |||
timeout: 4s | |||
retries: 4 | |||
svacer: | |||
image: ispras/svacer:10-0-0 | |||
container_name: svacer | |||
restart: always | |||
shm_size: 1g | |||
depends_on: | |||
postgresql: | |||
condition: service_healthy | |||
ports: | |||
- "3002:3002" | |||
- "8080:8080" | |||
environment: | |||
- SVACER_PG_URL=postgres://svace:svace@postgresql:5432/svace | |||
- STORE=/data/store | |||
volumes: | |||
- svacer-object-store:/data/store | |||
- /var/run/docker.sock:/var/run/docker.sock:ro # доступ к API docker'а из контейнера Svacer | |||
- ./svacer.cfg:/svacer/bin/svacer.cfg:ro # привязка конфигурационного файла svacer.cfg | |||
- /data/snapshot-sources:/data/snapshot-sources # writable привязка коневой папки с исходниками снимков. Пути до и после ":" должны совпадать. | |||
networks: | |||
svacer: | |||
healthcheck: | |||
test: curl --fail http://localhost:8080/api/health || exit 1 | |||
interval: 8s | |||
start_period: 16s | |||
timeout: 4s | |||
retries: 4 | |||
volumes: | |||
svacer-postgres: | |||
svacer-object-store: | |||
networks: | |||
svacer: | |||
</pre> | |||
</div></div> | |||
== Схемы компонентов == | == Схемы компонентов == | ||
Latest revision as of 14:21, 20 November 2025
Поддержка функциональности webide, когда Svacer развёрнут в docker-контейнере
На данный момент функциональность запуска Theia IDE по умолчанию настроена на запуск Svacer с помощью исполняемого файла, "рядом" с docker'ом.
Для поддержки функциональности webide, когда Svacer развёрнут в docker-контейнере, необходимо решить следующие задачи:
- Предоставить docker-контейнеру Svacer доступ к управлению контейнерами IDE;
- Активация функциональности webide в docker-контейнере Svacer;
- Организация сетевого доступа между контейнером Svacer и контейнерами IDE;
- Настройка доступа к общему хранилищу с исходными файлами для контейнера Svacer и контейнеров IDE;
Детали каждой задачи и варианты решения приведены ниже.
Предоставление контейнеру Svacer доступа к управлению контейнерами IDE
Функциональность запуска IDE основана на том, что Svacer управляет контейнерами IDE с помощью API docker'а. Поэтому необходимо предоставить доступ к API docker'а из docker-контейнера Svacer.
Решение
Один из способов подключения к API docker'а является использование socket-файла /var/run/docker.sock. Чтобы Svacer получил доступ к этому файлу, его необходимо примонтировать к docker-контейнеру:
services:
...
svacer:
...
volumes:
...
- /var/run/docker.sock:/var/run/docker.sock:ro
...
Изменение настроек Svacer (svacer.cfg)
Дальнейшие шаги связаны с изменением настроек Svacer. В случае, когда Svacer развёрнут в docker-контейнере, это можно сделать следующим образом:
- Создать конфигурационный файл
svacer.cfg; - Перенести настройки функциональности webide;
- Примонтировать файл к рабочей директории docker-контейнера Svacer;
- Перезапустить контейнер Svacer;
Чтобы примонтировать svacer.cfg к контейнеру Svacer нужно в файл docker-compose.yml добавить строку:
services:
...
svacer:
...
volumes:
...
- /path/to/svacer.cfg:/svacer/bin/svacer.cfg:ro
...
Перенос настроек функциональности webide в svacer.cfg
Скопировать секцию с настройками по умолчанию в svacer.cfg
Активация функциональности webide
Варианты активации функциональности webide:
- Указать флаг
--xsvacer.features webideпри запуске Svacer; - В конфигурационном файле
svacer.cfgдобавить значениеwebideв список/xsvacer/features;
Решение
Второй вариант активации функциональности является более предпочтительным. В svacer.cfg необходимо добавить следующую настройку:
xsvacer:
features:
- webide # активация функциональности webide
...
--xsvacer.features webideВ docker-compose.yml используется docker-образ Svacer, собранный на основе Dockerfile. В данном файле содержится инструкция запуска Svacer
CMD /svacer/bin/svacer-server run --store $STORE --pg $SVACER_PG_URL
Для активации функциональности IDE необходимо переопределить аргументы инструкции CMD в файле docker-compose.yml:
services:
...
svacer:
...
command: /bin/sh -c '/svacer/bin/svacer-server run --store $$STORE --pg $${SVACER_PG_URL} --xsvacer.features webide'
CMD docker-образа можно с помощью команды docker image inspect {имя образа}Организация сетевого доступа между контейнером Svacer и контейнерами IDE
В текущей реализации при запуске docker-контейнер IDE публикует внутренний порт web-приложения Theia IDE на случайный порт всех сетевых интерфейсов (0.0.0.0) docker-хоста. Svacer хранит информацию на каком порту хоста развёрнуты соответствующие инстансы IDE и проксирует запросы к ним.
Необходимо организовать доступ контейнера Svacer к портам docker-хоста, на которых опубликованы контейнеры IDE.
Решение
Чтобы предоставить доступ контейнера Svacer к контейнеру IDE нужно:
- Определить ip-адрес интерфейса docker-хоста
docker0; - Изменить настройку публикации портов контейнеров IDE на значение ip-адреса
docker0.
Определение ip-адреса docker0
На docker-хосте выполнить команду ip a:
$ ip a
...
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 82:70:b5:24:50:e4 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
В данном случае искомый ip-адрес — 172.17.0.1
Изменение настроек публикации портов контейнеров IDE
Настройки публикации порта контейнера IDE заданы в конфигурации запуска IDE. Настройки по умолчанию должны быть предварительно перенесены в svacer.cfg.
В файле svacer.cfg нужно добавить параметр hostip со значением ip-адреса интерфейса docker0:
xsvacer:
webide:
theia:
1-46-0: &1-46-0
...
docker:
...
container:
...
hostconfig:
...
portbindings:
"3000/tcp":
- hostport: 0
hostip: 172.17.0.1 # новый параметр
...
Настройка доступа к общему хранилищу с исходными файлами для контейнера Svacer и контейнеров IDE
При запуске IDE для просмотра снимка, Svacer экспортирует исходный код снимка в папку на docker-хосте. Далее эта папка монтируется в контейнер IDE, к пути /home/project, который использует Theia IDE в качестве папки проекта.
При развёртывании Svacer в docker-контейнере необходимо настроить экспорт исходников в папку, которая может быть примонтирована к контейнеру IDE.
Решение
Путь к корневой папке, в которую будут экспортироваться исходники снимков, задаётся в конфигурационном параметре sourcesroot. Так как этот же параметр используется для настройки пути к корневой папке на docker-хосте, которая будет примонтирована к контейнеру IDE, то пути к папке с исходным кодом снимков должны совпадать в контейнере Svacer и на docker-хосте.
Пример конфигурации
svacer.cfg
xsvacer:
webide:
theia:
1-46-0: &1-46-0
...
sourcesroot: /data/snapshot-sources
...
docker-compose.yml
services:
...
svacer:
...
volumes:
...
- /data/snapshot-sources:/data/snapshot-sources # привязка с разрешением на запись
...
Примеры файлов с описанными изменениями
Ниже приведены версии конфигурационных файлов, с изменениями которые были описаны выше. Изменённые строки содежат комментарии.
svacer.cfg содержащий только секцию xsvacer. Если файл svacer.cfg создан и содержит другие настройки, то приведённые ниже настройки должны быть перенесены в существующий файлxsvacer:
features:
- webide # активация функциональности webide
webide:
theia:
1-46-0: &1-46-0
disabled: true
order: 0
name: Theia blueprint web IDE (v1.46.0)
sourcesroot: /data/snapshot-sources # путь к базовой папке с исходным кодом снимков
sarif:
filenametemplate: "warnings.sarif"
commenttemplate: "{{if trim .Text}}`[{{.CreateTs.Local.Format \"02.01.2006 15:04\"}}] {{.CreatedBy}}:`\n\n{{trim .Text}}{{end}}"
healthcheck:
starttoreadyretries: 10
starttoreadyperiod: 200ms
docker:
hostid: default
containernametemplate: "theia-1-46-{{.StartArgs.SnapshotID}}"
image:
name: theia-blueprint
tag: 1.46.0.sarif.clang.10.0.0
sourcetype: file
sourcefileurl: https://svacer.ispras.ru/docker/images/theia-blueprint.1.46.0.sarif.clang.10.0.0.tar.gz
containerconfiglabels:
- "com.docker.compose.project": svacer
container:
config:
env:
- THEIA_WEBVIEW_EXTERNAL_ENDPOINT={{hostname}}
hostconfig:
autoremove: true
portbindings:
"3000/tcp":
- hostport: 0
hostip: 172.17.0.1 # ip-адрес интерфейса хоста docker0
manager:
type: default
default:
<<: *1-46-0
order: 0
disabled: false
CMD docker-образа можно с помощью команды docker image inspect {имя образа}services:
postgresql:
image: postgres:17.0-bullseye
container_name: svacer-postgres
restart: always
shm_size: 1g
environment:
- POSTGRES_DB=svace
- POSTGRES_USER=svace
- POSTGRES_PASSWORD=svace
- POSTGRES_ROOT_PASSWORD=svace
volumes:
- svacer-postgres:/var/lib/postgresql/data
networks:
svacer:
healthcheck:
test: pg_isready -U svace
interval: 8s
start_period: 16s
timeout: 4s
retries: 4
svacer:
image: ispras/svacer:10-0-0
container_name: svacer
restart: always
shm_size: 1g
depends_on:
postgresql:
condition: service_healthy
ports:
- "3002:3002"
- "8080:8080"
environment:
- SVACER_PG_URL=postgres://svace:svace@postgresql:5432/svace
- STORE=/data/store
volumes:
- svacer-object-store:/data/store
- /var/run/docker.sock:/var/run/docker.sock:ro # доступ к API docker'а из контейнера Svacer
- ./svacer.cfg:/svacer/bin/svacer.cfg:ro # привязка конфигурационного файла svacer.cfg
- /data/snapshot-sources:/data/snapshot-sources # writable привязка коневой папки с исходниками снимков. Пути до и после ":" должны совпадать.
networks:
svacer:
healthcheck:
test: curl --fail http://localhost:8080/api/health || exit 1
interval: 8s
start_period: 16s
timeout: 4s
retries: 4
volumes:
svacer-postgres:
svacer-object-store:
networks:
svacer:
Схемы компонентов
Ниже приведены концептуальные схемы компонентов, на базе которых основана функциональность запуска IDE. Данные схемы могут быть использованы для поиска других решений приведённых выше задач.

