Перейти до головного контенту

Розгортання SmartSign в Docker контейнері

Підготовчі роботи

tip

Для прикладу використовується платформа Ubuntu Linux 22.04 LTS, але користувач може використовувати будь-яку підтримувану Docker платформу
Документація Docker знаходиться за посиланням

  1. Встановлюємо Ubuntu Linux 22.04 LTS
  2. Встановлюємо останню версію docker, docker compose та текстовий редактор nano
sudo apt-get update 
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin nano
sudo systemctl enable docker && sudo systemctl start docker
  1. Створюємо директорію web у будь-якому місці. Надалі всі дії будуть проводитися всередині цієї директорії
sudo mkdir web && cd web/
  1. Створюємо директорію для мікросервісів
sudo mkdir backend
  1. Створюємо компоуз файли
sudo touch backend/docker-compose.yml
  1. Створюємо.env файли зі змінними
sudo touch backend/.env
  1. Відкриваємо для редагування компоуз файл від модуля аналітики
sudo nano backend/docker-compose.yml
  1. Вставляємо наступний текст та змінюємо значення на потрібні (після редагування для збереження натискаємо клавіші Ctrl+O, Enter, Ctrl+X):
version: '2'
services:
backend:
container_name: backend
image: <registry_image_url>
env_file:
- .env
volumes:
- ./.env:/var/www/.env
- ./database/db:/var/www/database/db
- ./storage_app_public:/var/www/storage/app/public
tty: true
networks:
- nginx-proxy
restart: unless-stopped
networks:
nginx-proxy:
name: nginx-proxy
  1. Відкриваємо для редагування .env файл від бекенду
sudo nano back/.env
  1. Вставляємо наступний текст та змінюємо значення на потрібні (після редагування для збереження натискаємо клавіші Ctrl+O, Enter, Ctrl+X):
APP_NAME=Lumen
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=<URL сайту backend>
APP_TIMEZONE=UTC
DOMAIN_=<доменне ім'я backend>
BACKEND_=backend
LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=
DB_CONNECTION=sqlite
DB_DATABASE=/var/www/database/db/database.sqlite
CACHE_DRIVER=memcached
QUEUE_CONNECTION=sync
info
  • Для тестування використовується APP_ENV=local, для кінцевої версії — APP_ENV=production
  • APP_KEY можна отримати від технічної підтримки

Запуск та оновлення

  1. В консолі виконуємо підключення до docker регістру <REGISTRY-SERVER> та вставляємо секретний ключ як ім'я користувача та пароль
sudo docker login <REGISTRY-SERVER>
  1. Запускаємо мікросервіси
sudo cd backend/ && docker compose up -d
  1. Тепер мікросервіс доступний за наступними адресами
МікросервісКонтейнер:порт
Бекендbackend:8080
  1. Для оновлення мікросервісів необхідно перейти в директорію web та виконати наступну команду:
sudo cd backend/ && docker compose pull && docker compose up -d
  1. Для виводу потрібних мікросервісів до інтернету та налаштування SSL для доменів потрібно встановити та налаштувати реверс-проксі сервер, наприклад jwilder/nginx-proxy, traefic/latest або haproxy/latest