<p>В новых версиях используются другие имена пакетов, и хотя данные должны переноситься автоматически, настоятельно рекомендуется выполнить резервное копирование всех папок с данными.</p>
<p>Первой выпущенной Docker-версией для <b>Сервера совместной работы</b> была версия 8.1, поэтому в данной инструкции мы будем считать ее самой старой версией, которую можно было установить на компьютере, и покажем процесс обновления с нее до последней доступной версии.</p>
</div>
</div>
</div>
<h2 id="Step1">Создание резервной копии базы данных</h2>
<div class="block_of_step">
<div class="screen_text">
<p>Прежде всего необходимо выполнить резервное копирование папок, которые содержат данные портала, чтобы предотвратить потерю данных. Если при установке <b>Сервера совместной работы</b> вы <a href="<%=VirtualPathUtility.ToAbsolute("~/server/docker/community/docker-installation.aspx#StoringData")%>">монтировали папки</a> для хранения данных вне контейнера Docker, надо создать резервную копию следующих папок, расположенных на хост-машине:</p>
<p>Если вы не монтировали папки при установке <b>Сервера совместной работы</b>, надо выполнить резервное копирование следующих папок внутри Docker-контейнера:</p>
<ul>
<li><code>/var/www/onlyoffice/Data</code></li>
<li><code>/var/log/onlyoffice</code></li>
<li><code>/var/lib/mysql</code></li>
</ul>
<p>Эти папки с данными можно скопировать из Docker-контейнера в папку на хост-машине:</p>
<p>Где <b>{{COMMUNITY_SERVER_ID}}</b> означает имя или ID контейнера <b>Сервера совместной работы</b>, а <b>/home/user/Backup</b> - путь к любой папке на хост-машине.</p>
</div>
<p>Можно также создать образ контейнера с помощью команды Docker <b>build</b>:</p>
<pre><code>docker build -t [image name]
</code></pre>
<p>Для резервного копирования <b>базы данных MySQL</b> в большинстве случаев достаточно скопировать папку <code>/var/lib/mysql</code>. Но можно также создать дамп базы данных с помощью любой программы, которую вы используете для этой цели. Например, можно использовать утилиту <b>mysqldump</b>.</p>
<div class="notehelp nh_notice">Не требуется дополнительно удалять никакие файлы вручную, просто выполните указанную выше команду, чтобы удалить с компьютера <b>Сервер совместной работы</b>.</div>
<p>База данных и все необходимые файлы должны быть автоматически получены из предыдущей версии. Запустите портал и убедитесь в его корректной работе и целостности данных.</p>
<p>При обновлении пакета с версии 8.1 до 8.5 обновляется база данных, поэтому необходимо еще раз выполнить резервное копирование.</p>
<h5>Обновление с версии 8.5 до последней версии</h5>
<p>Чтобы обновить <b>Сервер совместной работы</b> до последней версии, необходимо выполнить следующие действия:</p>
<h6>Шаг 1: Перенесите данные в хранилище вне контейнеров Docker</h6>
<p>Если вы уже установили <b>Сервер совместной работы</b> с возможностью сохранения данных в папках вне контейнеров Docker, можно пропустить этот шаг. В противном случае необходимо вручную выполнить резервное копирование данных портала, как описано в разделе <a href="<%=VirtualPathUtility.ToAbsolute("~/server/docker/community/upgrade-docker.aspx#Step1")%>">Создание резервной копии базы данных</a>.</p>
<h6>Шаг 2: Убедитесь, что смонтированы все внешние папки для хранения данных</h6>
<p>С помощью следующей команды убедитесь, что смонтированы все тома данных контейнера, используемые для хранения данных портала <b>Сервера совместной работы</b>:</p>
<p>где <b>{{COMMUNITY_SERVER_ID}}</b> означает имя или ID контейнера <b>Сервера совместной работы</b>.</p>
<div class="notehelp">Имя или ID текущего контейнера <b>Сервера совместной работы</b> можно легко узнать с помощью команды Docker, которая выводит список всех существующих контейнеров:
<p>где <b>{{COMMUNITY_SERVER_ID}}</b> означает имя или ID контейнера <b>Сервера совместной работы</b>.</p>
<h6>Шаг 4: Удалите текущий образ</h6>
<p>Образ, который использовался для установки <b>Сервера совместной работы</b>, также необходимо удалить, иначе он будет использоваться и для последующей установки, и обновления не произойдет:</p>
<p>Убедитесь, что запускаете новый образ, указав пути к папкам, привязанным <b>точно так же</b>, как они были смонтированы до удаления образа <b>Сервера совместной работы</b>, в противном случае данные, сохраненные в этих папках, не будут получены автоматически.</p>
<h6>Шаг 6: Восстановите резервную копию данных, если это необходимо</h6>
<p>Если вы не монтировали папки при установке предыдущей версии, потребуется восстановить данные вручную. Для этого скопируйте резервную копию данных из папок на хост-машине в новый контейнер:</p>
<p>Где <b>{{COMMUNITY_SERVER_ID}}</b> означает имя или ID контейнера <b>Сервера совместной работы</b>, а <b>/home/user/Backup</b> - путь к любой папке на хост-машине.</p>
<p>Или можно скопировать резервную копию данных из папок на хост-машине в новые смонтированные папки на хосте, указанные при установке новой версии:</p>
<pre><code>sudo cp -a /home/user/Backup/Data/. /app/onlyoffice/CommunityServer/data
sudo cp -a /home/user/Backup/onlyoffice/. /app/onlyoffice/CommunityServer/logs
sudo cp -a /home/user/Backup/mysql/. /app/onlyoffice/CommunityServer/mysql
</code></pre>
<p>Где <b>/home/user/Backup</b> - это путь к любой папке на хост-машине.</p>
<p>Если вы создавали дамп базы данных MySQL, его можно восстановить следующим образом:</p>
<ol>
<li>Скопируйте файл дампа базы данных MySQL с хост-машины в новый контейнер:
<p>Запустите портал и убедитесь в его корректной работе и целостности данных.</p>
</div>
</div>
<h2 id="Step3">Обновление Сервера совместной работы с интегрированными модулями Сервер документов и Почтовый сервер</h2>
<div class="block_of_step">
<div class="screen_text">
<p>Если вы используете <b>Сервер совместной работы</b> с уже привязанным <b>Сервером документов</b> и <b>Почтовым сервером</b> в Docker-контейнере, действия будут другими:</p>
<ol>
<li>После выполнения резервного копирования всех файлов и базы данных остановите Docker-контейнер <b>Сервера совместной работы</b>.</li>
<li>Создайте сеть для Docker-контейнеров и запустите новый контейнер <b>Сервера документов</b>, контейнер <b>Почтового сервера</b>, а затем контейнер <b>Сервера совместной работы</b>, связав их, как описано <a href="<%=VirtualPathUtility.ToAbsolute("~/server/docker/community/docker-installation.aspx#IntegratedInstallation")%>">здесь</a>. При запуске контейнеров также необходимо <a href="<%=VirtualPathUtility.ToAbsolute("~/server/docker/community/docker-installation.aspx#StoringData")%>">монтировать</a> папки с данными <b>точно так же</b>, как они были смонтированы в предыдущей версии.</li>
<li>Войдите в новый контейнер <b>Сервера совместной работы</b> и восстановите базу данных.</li>
</ol>
<p>Затем запустите портал и убедитесь в его корректной работе и целостности данных. Если все в порядке, теперь можно удалить старый контейнер с <b>Сервером совместной работы</b>.</p>