Тип статьи | Полезные команды |
---|
Компетенции | Администратор |
---|
Необходимые права | root |
---|
Версия платформы | 2.24 |
---|
Статус | |
---|
Сложность | легко |
---|
|
|
---|
Дополнительные сведения |
|
---|
1. Логин в Яндекс Регистре с помощью iam токена.
Блок кода |
---|
|
docker login \
--username iam \
--password <IAM_TOKEN> \
cr.yandex |
Вместо <IAM_TOKEN> подставляем свой токен вида
t1.9euelZqSkZmXkszJlsuSy8eWy5ORk-3rnpWaj4uJmc6WnsiLyImVm82Yl8fl8_dEA2hx-e8lWDdX_t3z9wQyZXH57yVYN1f-zef1656VmoydmJTJkIubx8idm5zJmc-O7_0.hw-uRRvhkdkC7gG-scE-fyWbBl2fLQMvOCQZlb-Har-M2Y_OCISA52AA_MqQbVnB4K1Z94cP4ZPncOrZGo8QBQ
Предупреждение |
---|
Команду вполне возможно придется вводить с sudo, особенно, если run.sh запускает тоже с sudo. Иначе run.sh покажет ошибку авторизации, как будто не видит факта успешного логина. |
2. Healthchecks
У трех докер контейнеров есть хелсчеки, это admin, portal and export-service. В некоторых ситуациях, например, при чрезмерной загрузке ресурсов сервера, healthchecks могут вызывать перезапуски этих контейнеров. Ниже пример из platform.yml для увеличения интервалов и кол-ва попыток для принудительного предотвращения перезапуска контейнеров.
Блок кода |
---|
language | bash |
---|
theme | RDark |
---|
title | Пример из YML |
---|
collapse | true |
---|
|
admin:
image: ${DOCKER_REPO_PREFIX}${ADMIN_TAG}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/health"]
interval: 30s
timeout: 960s
retries: 50
start_period: 40s
depends_on:
- proxy
- mongodb
volumes:
- /etc/localtime:/etc/localtime:ro
- database-backups:/visiology/database_backups
- hardwareid:/visiology/admin/app/license/keys/hardwareid
- /docker-volume/admin/portalImages:/visiology/admin/portalImages
- /docker-volume/admin/useFiscalCalendar:/visiology/admin/useFiscalCalendar
environment:
- VPROXY_URL=${PLATFORM_URL:-proxy}
- POLICY=${POLICY}
labels:
component: "admin"
secrets:
- MONGO_AUTH_USER
- MONGO_AUTH_PASSWORD
<< : *deploy_platform
<< : *logging_options
portal:
image: ${DOCKER_REPO_PREFIX}${PORTAL_TAG}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80/health"]
interval: 30s
timeout: 960s
retries: 50
start_period: 40s
depends_on:
- dashboard-viewer
volumes:
- /etc/localtime:/etc/localtime:ro
labels:
component: "portal"
<< : *deploy_platform
<< : *logging_options |
2. Скрипты, упрощающие работу
install-docker-ubuntu.sh | Установка последней версии Docker и Docker-Compose на Ubuntu. После выполнения установки нужно перезайти в терминал.
3. Долгий запуск докер сервисов в закрытом контуре
Если сервер платформы не имеет выхода в интернет, то есть вероятность, что докер сервисы будут стартовать очень долго. Связано это с недоступностью ДНС серверов. При чем если мы заблокируем ДНС сервера, например на прокси, то запуск будет быстрый, а вот если они именно не доступны, т.е. ждем таймаута, то старт сервисов продлится примерно 20 минут (время не точное). Происходит это из-за того, что докер при старте сервиса по всей видимости что-то проверяет в реестре. Естественно если ДНС не доступен, то при обращении к cr.yandex он ждет ответа. Поэтому для быстрого решения этой проблемы можно прописать в /etc/hosts следующую строчку:
Блок кода |
---|
language | bash |
---|
theme | RDark |
---|
title | Пример из YML |
---|
collapse | true |
---|
|
127.0.0.1 cr.yandex |
После этого запуска будет быстрый.