Fork me on GitHub

Herr Knedel/Великі справи з контейнерами: KPI Dashboard

Created Mon, 21 Mar 2022 00:00:00 +0000 Modified Sat, 01 Oct 2022 11:01:31 +0000 Schwierigkeitsgrad: Es kann etwas länger dauern

380 Words

Особливо в епоху Корони, з децентралізацією роботи, актуальна інформація є дуже затребуваною на всіх локаціях. Я сам вже налаштував незліченну кількість інформаційних систем і хотів би представити чудове програмне забезпечення під назвою Smashing.Speaker: https://smashing.github.io/Das Проект Smashing спочатку був розроблений під назвою Dashing компанією Shopify для презентації бізнес-показників. Але, звичайно, не можна просто показувати цифри бізнесу. Розробники з усього світу розробили Smashing tiles, так звані віджети, для Gitlab, Jenkins, Bamboo, Jira та ін., див.:https://github.com/Smashing/smashing/wiki/Additional-WidgetsDoch як з ним працювати?

Крок 1: Створення базового зображення

Спочатку я створюю простий образ Docker, який вже включає в себе Ruby і Dashing.

x
+
Terminal

$ mkdir dashing-project
$ cd dashing-project
$ mkdir dashboard
$ vim Dockerfile

Це перший контент, який я записую у файл Dockerfile:

From ubuntu:latest
 
ENV TZ=Europe/Berlin
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY dashboard/ /code/

RUN apt-get update && apt-get install -y ruby wget unzip ruby-dev build-essential tzdata nodejs && \
gem install smashing && \
apt-get clean

Далі я створюю образ Docker за допомогою цієї команди:

x
+
Terminal

$ docker build -t my-dashboard:latest .

Ось як це виглядає для мене:

Крок 2: Створення інформаційної панелі

Тепер я можу створити нову інформаційну панель наступною командою:

x
+
Terminal

$ docker run -it -v /path/to/my/dashing-project:/code my-dashboard:latest smashing new dashboard

Після цього папка “dashboard” в проекті Dashing повинна мати такий вигляд: Дуже добре! Тепер доведеться знову оновлювати докер-файл. Новий зміст полягає в наступному:

From ubuntu:latest
 
ENV TZ=Europe/Berlin
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
 
COPY dashboard/ /code/
 
RUN apt-get update && apt-get install -y ruby wget unzip ruby-dev build-essential tzdata nodejs && \
gem install smashing && \
gem install bundler && \
apt-get clean
 
RUN cd /code/ && \
bundle
 
RUN chown -R www-data:www-data  /code/

USER www-data
WORKDIR /code/

EXPOSE 3030

CMD ["/usr/local/bin/bundle", "exec", "puma", "config.ru"]

Крім того, файл Gemfile в папці “dashboard” також має бути адаптований:

source 'https://rubygems.org'

gem 'smashing'
gem 'puma'

Повторюю команду побудови:

x
+
Terminal

$ docker build -t my-dashboard:latest .

Тепер я можу вперше запустити свою нову інформаційну панель та отримати доступ до неї за адресою http://localhost:9292.
x
+
Terminal

$ docker run -it -p 9292:9292 my-dashboard:latest

І ось як це виглядає: Це основа хорошої інформаційної системи. Ви можете налаштувати всі кольори, шрифти та віджети.