Docker #42

Closed
opened 2025-06-01 18:49:27 +00:00 by cuqmbr · 4 comments
Owner
  • изменить структура файла репозиториев
  • написать Dockerfile
  • настроить автоматическую сборку образа контейнера после слияния в ветку main
  • настроить подмену секретов в файлах перед сборкой образа
  • настроить автоматическое обновление до последнего образа контейнера после перезапуска сервера
  • настроить автоматическое удаление старых образов контейнера на сервере оракла
- [x] изменить структура файла репозиториев - [x] написать Dockerfile - [x] настроить автоматическую сборку образа контейнера после слияния в ветку main - [x] настроить подмену секретов в файлах перед сборкой образа - [x] настроить автоматическое обновление до последнего образа контейнера после перезапуска сервера - [x] настроить автоматическое удаление старых образов контейнера на сервере оракла
cuqmbr added the
server/lobby
server/survival
server/proxy
labels 2025-06-01 18:49:27 +00:00
cuqmbr self-assigned this 2025-06-01 18:49:27 +00:00
cuqmbr added this to the Task Tracker project 2025-06-01 18:49:27 +00:00
cuqmbr added the
oracle
label 2025-06-01 19:51:31 +00:00
Author
Owner

Подмена секретов происходит во время запуска контейнера. Значения секретов и настроек берутся из переменных окружения Докера.

Подмена секретов происходит во время запуска контейнера. Значения секретов и настроек берутся из переменных окружения Докера.
Author
Owner

Для разворачивания сервера в панеле управления MCSManager не будут использоваться тип экземпляра для запуска Докер-контейнера. Вместо этого будет создаваться "Общее консольное приложение", в строку запуска которого будет прописываться общая команда для старта контейнера, например:

docker container run \
    --interactive --attach stdin --attach stdout --attach stderr \
    --rm --name server-survival-test \
    --mount type=bind,src=/opt/mcsmanager/daemon/data/InstanceData/e46cd5e627d64cf59715fe3fce1775fa,dst=/workspace/data \
    --pull always \
    --env MEMORY=4G \
    --network my-bridge --publish 33333:25565/tcp \
    gitea.cuqmbr.xyz/bebrashield/server-survival/feature-42:latest

Перед первым запуском нужно настроить bind mount (--mount type=bind,src=/opt/mcsmanager/daemon/data/InstanceData/e46cd5e627d64cf59715fe3fce1775fa,dst=/workspace/data) в директории контейнера, создать необходимые файлы и папки (они были перезаписаны при монтировании). Также в настройках терминала нужно поменять значние "Команда завершения экземпляра" на "stop".

Флаг --interactive является необходимым: без него в консоли сервера в панеле управления не будут выполнятся команды.

Для разворачивания сервера в панеле управления MCSManager не будут использоваться тип экземпляра для запуска Докер-контейнера. Вместо этого будет создаваться "Общее консольное приложение", в строку запуска которого будет прописываться общая команда для старта контейнера, например: ``` docker container run \ --interactive --attach stdin --attach stdout --attach stderr \ --rm --name server-survival-test \ --mount type=bind,src=/opt/mcsmanager/daemon/data/InstanceData/e46cd5e627d64cf59715fe3fce1775fa,dst=/workspace/data \ --pull always \ --env MEMORY=4G \ --network my-bridge --publish 33333:25565/tcp \ gitea.cuqmbr.xyz/bebrashield/server-survival/feature-42:latest ``` Перед первым запуском нужно настроить bind mount (`--mount type=bind,src=/opt/mcsmanager/daemon/data/InstanceData/e46cd5e627d64cf59715fe3fce1775fa,dst=/workspace/data`) в директории контейнера, создать необходимые файлы и папки (они были перезаписаны при монтировании). Также в настройках терминала нужно поменять значние _"Команда завершения экземпляра"_ на "**stop**". Флаг _--interactive_ является необходимым: без него в консоли сервера в панеле управления не будут выполнятся команды.
Author
Owner

Удаление устаревших образов будет настроено с помощью cron-задачи, которая будет выполняться каждий понедельник в 04:00 UTC +00:00.

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
  0  4  *  *  1 mcsmanager docker image prune --all
Удаление устаревших образов будет настроено с помощью cron-задачи, которая будет выполняться каждий понедельник в 04:00 UTC +00:00. ``` # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 0 4 * * 1 mcsmanager docker image prune --all ```
Author
Owner

Образы Докер-контейнеров будут автоматически собиратся после появления изменений в ветках develop и main репозиториев серверов.

Автоматизация настроеная с помощью GitHub Actions находится по пути .github/workflows/build-docker.yml.

В качастве платформы реестра пакета будет использоваться инстанс Gitea Кукумбера. Их можно найти во вкладке "Пакеты" организации bebrashield.

Образы Докер-контейнеров будут автоматически собиратся после появления изменений в ветках _develop_ и _main_ репозиториев серверов. Автоматизация настроеная с помощью GitHub Actions находится по пути _.github/workflows/build-docker.yml_. В качастве платформы реестра пакета будет использоваться инстанс Gitea Кукумбера. Их можно найти во вкладке "[Пакеты](https://gitea.cuqmbr.xyz/bebrashield/-/packages)" организации bebrashield.
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: bebrashield/task-tracker#42
No description provided.