Тема
Docker с внутренней базой
Необходимо для работы
Установка
- Создайте в корне папку
/sboard
shell
mkdir "/sboard"
- Создайте в новой папке файл
docker-compose.yml
shell
nano docker-compose.yml
Пример docker-compose.yml
для запуска с локальными сервисами
yml
version: "3.3"
services:
postgres:
image: "${DOCKER_REGISTRY}/postgres:${DOCKER_IMAGE_TAG}"
restart: "always"
environment:
POSTGRES_PASSWORD: example
PGDATA: /data
volumes:
- pg_data:/data
minio:
image: "${DOCKER_REGISTRY}/minio:${DOCKER_IMAGE_TAG}"
restart: "always"
volumes:
- minio_data:/data
environment:
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: minio_pass
redis:
image: "${DOCKER_REGISTRY}/redis:${DOCKER_IMAGE_TAG}"
restart: "always"
command: redis-server --save 20 1 --loglevel warning --requirepass eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81
sboard:
image: "${DOCKER_REGISTRY}/sboard:${DOCKER_IMAGE_TAG}"
restart: "always"
environment:
DOMAIN_NAME: "${DOMAIN_NAME}"
S3_CDN_URL: "${S3_CDN_URL}"
MIRO_CLIENT_ID: "${MIRO_CLIENT_ID}"
MIRO_CLIENT_SECRET: "${MIRO_CLIENT_SECRET}"
depends_on:
- minio
- redis
- postgres
nginx:
image: "${DOCKER_REGISTRY}/nginx-minio:${DOCKER_IMAGE_TAG}"
restart: "always"
ports:
- 80:80
- 443:443
environment:
DOMAIN_NAME: "${DOMAIN_NAME}"
volumes:
- "./certs:/certs"
depends_on:
- minio
- sboard
volumes:
minio_data:
pg_data:
Переменные окружения
Создайте файл .env
в папке с docker-compose.yml
и укажите в нём переменные окружения. Пример:
shell
DOCKER_IMAGE_TAG=latest # уникальный идентификатор сборки(cм. релизы)
DOMAIN_NAME=demo.example.com # доменное имя, на котором развернется сервис
DOCKER_REGISTRY=registry # registry докер образов(запросите url registry у вашего менеджера)
S3_CDN_URL=https://demo.example.com/sboard-whiteboard/ # cdn url для s3 storage
MIRO_CLIENT_ID=MIRO_CLIENT_ID # id клиента в личном кабинете миро для импорта досок
MIRO_CLIENT_SECRET=MIRO_CLIENT_SECRET # секретный ключ клиента миро
HTTP/HTTPS
В случае, когда SSL не требуется, следует отредактировать docker-compose.yml
и nginx, в частности:
yml
nginx:
image: "${DOCKER_REGISTRY}/nginx-minio-http:${DOCKER_IMAGE_TAG}"
restart: "always"
ports:
- 80:80
environment:
DOMAIN_NAME: "${DOMAIN_NAME}"
depends_on:
- minio
- sboard
- Авторизуйтесь в Docker registry (запросите ключ авторизации у вашего менеджера)
shell
cat key.json | docker login \
--username json_key \
--password-stdin \
cr.yandex
- Подтяните образы с Docker registry
shell
docker-compose -f docker-compose.yml pull
Подсказка
Все процедуры, связанные с вызовом docker-compose, следует выполнять в папке с файлом docker-compose.yml
- Запустите docker-compose
shell
docker-compose -f docker-compose.yml up -d --force-recreate --scale sboard=2
Уточнение
В данной команде описан пример запуска с репликацией контейнера sboard (--scale sboard=2
)