15 декабря 2021

Образ для Docker за 5 минут

Множество современных приложений сейчас запускаются в докере. При этом CI/CD они также проходят посредством докер-контейнера. Иногда новые функции могут потребовать добавить дополнительную функциональность в контейнер. Это делается довольно быстро.

1. Для начала нужно создать свой Dockerfile — это текстовый файл, содержащий команды для сборки. Docker позволяет делать сборку практически из любого другого контейнера, что сильно упрощает нам жизнь. Предположим, нам не хватает для CI-бэкенда установленной Node.JS Всё, что нам нужно — это взять текущий контейнер и добавить в него необходимые приложения. Вот пример такого файла

FROM kroncosta/qmis_1101:228

RUN apk add --update nodejs nodejs-npm

Здесь ключевое слово FROM указывает, на основе какого образа мы будем создавать свой новый контейнер. Для этого можно взять абсолютно любой образ.

Ключевое слово RUN при этом указывает, какую команду следует запустить внутри контейнера при сборке. Поскольку изначальный образ базировался на alpine-linux, то для установки пакета нам понадобится команда apk add. В образах, основанных на других дистрибутивах линукса команда для установки программ может отличаться.

2. После того, как мы приготовили Dockerfile можно запускать сборку. Самый простой вариант — перейти в папку с файлом в терминале(командной строке) и запустить команду docker build . — обратите внимание на один обязательный параметр — путь к файлу Dockerfile. Поскольку мы находимся в папке с этим файлом, то этот путь — точка (.)

3. После успешной сборки в списке образов докера добавится один безымянный образ (поскольку мы не указали имя при сборке). У этого образа не будет репозитория и тэга, а будет только IMAGE ID (просмотреть все присутствующие на компьютере образы можно командой docker images). Нам осталось лишь присвоить образу имя репозитория и тэг, чтобы запушить на docker-hub. Сделать это можно командой

docker tag 02c7adb3a987 othernik/skillbox:1.0

Здесь:

02c7adb3a987 — IMAGE ID созданного образа (у вас будет другой, но чуть похожий)

othernik/skillbox — Имя репозитория. Чаще всего оно состоит из вашего логина на сайте Docker Hub и имени репозитория.

1.0 — Собственно тэг. Образ может иметь несколько версий и с помощью тегов их можно разделять. После выполнения команды образ получит имя и тэг

4. Чтобы запушить наш образ на Docker Hub необходимо зарегистрироваться на этом сайте. После этого через терминал(командную строку) следует залогиниться там со своим логином и паролем с помощью команды docker login (вам нужно будет ввести свой логин и пароль). Затем нужно будет выполнить команду

docker push othernik/skillbox:1.0

всё, что после push (имя и тэг) будут именно такими, какие вы выбрали на предыдущем этапе.

— после этого образ будет опубликован на Docker Hub и его можно будет использовать где угодно (например при сборке CI)

P.S. Написано для сокурсников, но вероятно пригодится и кому-то ещё

28 июня 2021

Коронавирус

Вот и я переболел коронавирусом. Собственно, сам виноват. Страшновато было идти прививаться. Надеялся, что пронесёт. В итоге едва не откинул копыта. Поначалу не было даже подозрения, что это коронавирус, так как запахи и вкусы прекрасно чувствовал. Очень обидно, что СМИ повсюду об этом кричат, а по факту этот симптом часто отсутствует. А присутствует постоянный кашель и невозможность откашляться, а следом одышка и даже невозможность вдохнуть полной грудью. Собственно так протекает относительно тяжёлая форма. У некоторых всё проходит практически без симптомов, в лёгкой форме. Вероятно тут всё зависит от организма. С другой стороны, предсказать что-то довольно сложно. Наблюдал молодого, спортивного парня, которого в итоге отвезли в реанимацию на ИВЛ. А ещё наблюдал адептов конспирологических теорий среди врачей, среди уже переболевших в тяжёлой форме пациентов и среди других людей, которые вполне могли почувствовать реальность коронавируса на своём опыте. Что довольно прискорбно. Жутко бесит, что власть пытается прогибаться перед этими нехорошими людьми.

Имхо, медийных личностей, агитирующих против вакцинации, следует штрафовать. Депутатов, устраивающих митинги против вакцинации, стоит садить в тюрьму. А работников сферы общественного питания необходимо увольнять, если они не хотят вакцинироваться. Ибо нефиг. Всем советую не повторять моих ошибок и привиться. А конспирологи пусть идут на хуй.

1 августа 2020

Как я искал цвет по hex-коду с помощью kd-дерева.

.

  Любознательность порой приводит людей к неожиданным открытиям. Даёт ценный опыт и раздвигает горизонты познания. Так и моё небольшое желание найти оптимальный путь получения цвета по шестнадцатеричному коду вылилось в эпопею с изучением алгоритмов, проведением тестов производительности и наконец, выкладыванием моей первой библиотеки на Github. Итак, вот с чего всё начиналось… Читать далее

14 мая 2020

Как создать личный Maven-репозиторий на Github

.

  В рамках освоения мной языка Java на определённом этапе встал вопрос: «Как стать богатым и знаменитым, написав пару строчек кода выложить своё будущее творение на суд других людей, то бишь, создать полезную и необходимую библиотеку?». До сих пор приходилось лишь пользоваться чужими библиотеками, но ведь будущее не за горами. А ещё, пришло понимание, что практически любой проект сейчас использует некий инструмент для сборки (например, Maven), который сам подтягивает зависимости и старые пути (выкладывание jar-файла) уже неактуальны. Я быстренько нашёл в сети руководство, но меня ждал облом. За пару лет с его публикации плагины устарели или обновились, меня встретили ошибки и долгий поиск решений. Поэтому было принято решение сделать новую версию и по возможности прокомментировать её и сравнить с прошлым вариантом. Итак, поехали… Читать далее

6 апреля 2020

Что представляет из себя пул строк в Java?

Как вы уже поняли из названия, пул строк в Java это группа строк, хранящаяся в динамическираспределяемой памяти, или памяти кучи (Java Heap Memory). Мы знаем, что строки в Java это особенный класс и мы можем создавать новые объекты String не только с помощью оператора new, но и просто передав их значение в двойных кавычках.

Читать далее

3 февраля 2020

Почему принцессы не какают читают?

Современный мир приносит современные проблемы. Когда-то дети любили играть на улице, потом их было не оторвать от телевизора, а сейчас они уставились в смартфоны, но всё так же совсем не хотят учиться. Откуда же такая нелюбовь к получению знаний? И как изменить ситуацию? Попробуем разобраться.

Читать далее

1 июня 2019

Стриминг как феномен современной культуры

В последнее время всё большую популярность набирают трансляции видеоигр через различные интернет-сервисы, так называемые стримы (от анг. stream — поток). Одни транслируют онлайн свои виртуальные достижения, другие смотрят чужое прохождение новых или же старых добрых игр. И тех и других довольно много. Почему же это явление стало столь популярным? Я попробовал разобраться в этом с позиции «бытовой психологии»…

Читать далее

15 января 2019

Немного конспирологии. Преемник.

Знаю, в сети много политических обозревателей. Много безумных конспирологических теорий. Однако мои предположения кажутся мне вполне логичными и, что самое главное, пока ещё никем не озвучены. Так что, поехали.

Читать далее

13 августа 2018

Черновик. Иногда лучше смотреть, чем читать.

Совсем недавно посмотрел «Черновик» по роману Лукьяненко. Я уже упоминал, что наш интернет наполнен хейтерами, угодить которым невозможно. Раньше я верил разгромным обзорам и пропускал годные фильмы. Теперь же я точно уверен, что плохой отзыв о фильме (текстовый или видео) это отличный повод его посмотреть. И я не ошибся. «Черновик» — очень интересный и безусловно стоящий фильм. Итак, приступим…

Читать далее

24 июня 2018

Про пенсию.

Сразу после начала чемпионата мира по футболу появилась информация о повышении пенсионного возраста в России. Про то, что в Европе тоже поздно выходят на пенсию, что получится её повысить и прочая ерунда. Многие уже сказали, что это неверное решение, но власть хочет рискнуть. Чем же рискует нынешняя власть и в чём она ошибается

Читать далее