Skip to content

Docker с внутренней базой

Необходимо для работы

Установка

  1. Создайте в корне папку /sboard
shell
mkdir "/sboard"
  1. Создайте в новой папке файл 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
  1. Авторизуйтесь в Docker registry (запросите ключ авторизации у вашего менеджера)
shell
cat key.json | docker login \
--username json_key \
--password-stdin \
cr.yandex
  1. Подтяните образы с Docker registry
shell
docker-compose -f docker-compose.yml pull

Подсказка

Все процедуры, связанные с вызовом docker-compose, следует выполнять в папке с файлом docker-compose.yml

  1. Запустите docker-compose
shell
docker-compose -f docker-compose.yml up -d --force-recreate --scale sboard=2

Уточнение

В данной команде описан пример запуска с репликацией контейнера sboard (--scale sboard=2)

Настройка SSL

Инструкция

Настройка SSO

Инструкция